Can you change the unit color (not the vertex coloring, the actual player-color) of a unit for a local player without causing a desync? It's pretty easily tested except I can't host games, so I can't test it for myself.
Just changing the player colour would, logically speaking, not desync. It's the same kind of thing as changing vertex colour (ie only visual). So I'd say most likely, but perhaps test to be sure.
Maybe not illusions, but on your minimap you have the little button to change everybodies team colour with 3 options, i dunno if Blizzard did it with local block, but they might have.
It's hard to focus for me right now, so forgive me if I'm mistaken.
Do you want all units owned and to be created by player change from lets say red to blue? If so, will simply using Unit - Change Color work if you pick every unit on map owned by red? And then turn on triggers so when every new unit trained/created/aquired for that player simply change color?