I had a similar problem with a C++ program reading a mondo XML file. The final solution was for the producer to break the xml file into several smaller files, but compiling with the large address aware flag worked as a temporary solution.
http://msdn.microsoft.com/en-us/library/wz223b1z(VS.80).aspx
Surely something similar exists for C#?