I find that GMAX memory cleanup is inefficient. When you do anything in loops, it just keeps packing crap away and doesn't know to clean up yet, except by the internal cleanup timer. Making your loops smaller would help big time. In the future, separate your tile packs into at least a quarter of the list, and then import them in smaller lots that way. It should increase your speed exponentially. You could alternately change the code a bit in the importer, so that you could do reset controllers later manually. Another thing I have against gmax is that if the memory cleanup timer fires while you are doing something, but the system thinks it is idle, it sometimes wipes memory you are still using, causing a permanent hang. With the size and complexity of the mountain building loops I wrote, I actually got that a lot.
Make use of multiple files. Load your first quarter, offset them by some arbitrary x/y position and save them. Load your second quarter and save them. When you finish loading and saving your 4th quarter, merge the other gmax files into one. It is much faster than additional import. And your progressive offset should provide you with a single nicely positioned tile map.