I'd save the reveal for the end, making it more fun and dramatic for everyone.

For example, I have Puck the Fey in my 5E game. I also have members of the Unseely Court posing as Puck to trick the Warlock into working for Team Evil. Problem is: no one's sure what Puck looks like. So the Unseely are posing as a very Midsummer's Night Dream-esque Faerie with bright, shimmering wings. Our warlock chose the Seely Court as her Fey Patrons for Titania, Oberon, and Puck, so she gets that reference on her side.

The true Puck is a Faerie Dragon, straight out of the DotA universe. Our Monk was an avid Warcraft III and DotA player back in the day, so that one's for him. He's gonna show up in the fight where Unseely-Puck tries to kill off the party once they've taken out the dirty laundry for him and his. Needless to say, he's not happy about the Unseely stealing his name. Faerie Dragon is furious, but doesn't speak Common, although he can write it. So it's not until he can put it into writing that the party knows who their new ally is.

As for old PCs, I'm definitely guilty of bringing back old characters as exarchs to gods or quest givers. I'm going to resurrect my old Kalashtar Cleric of the Path of Light as a mentor figure to the above mentioned Monk. I don't really expect anyone to get that one, but it'll still be fun for me to roleplay as him again.