The appropriate place that this is set is in AGameMode::ChoosePlayerStart_Implementation(AController* Player) (https://docs.unrealengine.com/latest/INT/API/Runtime/Engine/GameFramework/AGameMode/ChoosePlayerStart/index.html). This is what you would need to override. It is marked as a BlueprintNativeEvent, so you should be able to implement it in your custom GameMode blueprint.
You would then create a new APlayerStart that is derived from the APlayerStart blueprint. In it you would have a variable that determines which team can spawn there. In your GameMode method described above, you would return the PlayerStart actor that corresponds with the appropriate team. You would get the list of PlayerStarts in the level by using the TActorIterator method (which is the GetAllActorsOfClass node).