If you're planning on using it in a mod with it's own gamedata file, that technique won't work because it'll activate the cheat protection, so you can't save or collect Emblems.
Don't forget the Time Attack will be disabled.
I would suggest just using separate acts, with each act's header holding a different number in the ForceCharacter field. Aka:
0 for Sonic
1 for Tails
2 for Knuckles
3+ for custom characters in the order they were added
So let's say I wanted a stage in this scenario, which started with Tails, changed to Knux, and then went to Sonic.
I would do this as 3 separate acts, putting ForceCharacter = 1 in the first act's header, ForceCharacter = 2 in the second act's header, and ForceCharacter = 0 in the third.
The drawback to this method is that you'll be stuck using the last character (In this case, Sonic) from that point on, unless another ForceCharacter act came into play later on, so I would only use this on final / secret stages and the like.