Here's an idea: maybe you can combine the plots in small batches. So instead of doing something like
combinedPlot = Show @@ listOfFigures
you could instead do something more along the line of:
combinedPlot = Fold[Show, First[listOfFigures], Rest[First[listOfFigures]]]
This way, Mathematica never has to combine lost of graphics at once. If this Fold
is slow, you could try to partition your listOfFigures
and accumulate the figure in batches.