No need to overthink this thing. Go with the "he was just confused for a moment" explanation and be done with it.
If I have to be forced to accept that Generations occured, than I will go with this. ^
But in my mind, Generations was just another of Data's bizzare dream sequences and they just forgot to add the big reveal at the end. If Generations must exist, I think they should have ended it with Data waking up and hearing the sonic shower going, then cut to Kirk walking out, looking at Data and saying 'What iis it?' and Data replying with 'I have just had the strangest dream.', then fade to black. What the hell, it's worked before.