AtalaImage.FromByteArray() makes a copy of the bytes. You still need to dispose your copy or get it out of memory.
Also, the pdf collection needs to be made before it is saved -- and in this case that means that all of the AtalaImage's will need to be in memory.
And, since you are saving to a memorystream, the entire PDF will be in memory -- it's much better to build up the PDF into a FileStream when it's this big.
I would suggest making a TIFF (which allows appending and doesn't keep the image in memory after it's written).
Then you can use the code in this KB
http://www.atalasoft.com/kb/article.aspx?id=10125
To efficiently convert the TIFF from a PDF using minimal memory
If you need more help with this, please open a support case http://www.atalasoft.com/support