Yes, make sure the numPlayesr in the descblock includes all players in the game. Otherwise it won't initialize the player objects for those players and odd things happen. Usually all their units will show up on the minimap in white.
If you want to make sure the AI base is always placed, you might have to play around with the for loop to get it to terminate correctly. It's fairly easy to force placing a base after the loop for an AI player, but if you do that, you have to make sure their base won't be created in the loop. I'm not sure of the exact details, I can never remember exactly what the behavior of TethysGame::NoPlayers() is. Anyways, if you can't figure it out, I'm sure someone here either already knows or will look into it.