I have seen bizare errors in applications when the server runs out of memory. I think I remember that we had to set a certain external COM object to Nothing; and that solved the memory leak issue. The amazing thing is that this was in .NET, which is supposed to handle memory for you!
In my humble opinion, I believe you have a memory leak; but only you can search for it.
May I suggest the article:
At least it will give you ideas to try out.