GameInstance Doesn't Save Variables Moving To New Level

the GameInstance is not replicated (synced through network), so each player only has its own local copy and doesnt know anything about the others. you should store your team arrays in a GameSTATE, which IS replicated to everyone. that way all players will know who is in what team.

see docs for detailed explanations how different game classes work and connect between each other:
gameplay framework: Gameplay Framework Quick Reference | Unreal Engine Documentation
networking overview: Multiplayer in Blueprints | Unreal Engine Documentation
cedrics awesome networking compendium: http://cedric-neukirchen.net/Downloads/Compendium/UE4_Network_Compendium_by_Cedric_eXi_Neukirchen.pdf