You can make large regions encompassing areas of the map. like if its a maze you can make a region or 2 to cover a whole level for each level
Then when the map starts pick every unit in the region 1 by 1, save the units position to a point array, and save the unit type to a unit type array
Make sure those arrays are synced together so that point[1] is the position of unit[1]
Then remove them
This might cause alot of lag at the start of the map, so you may need to have something that says setting up map, or something like that for the first few seconds
Then when they get to that level, or that section of the map use the array to spawn the units using the unit type array in the position that is saved in the point array to reconstruct the units for that level