what about this: if somebody wants to switch from a team with less to a team with more, then when they execute that "join" command, send 'em some sort of message saying they must wait for someone to agree to switch with them from the other team. Then, all players on the other team would be asked if they want to switch with this person. Once a single person agrees, the notification can be cancelled and the player swap executed.