You can get wierd results like this if an error occurs early in your LoadFromFile method. I would put a few exception handlers in and see if you get any errors. It sounds like something might be going wrong in the read header section.

On the few occasions I have seen something similar, it's usually when I'm doing something with Pointers or reading from stream into a buffer and somethings goes wrong (buffer overrun or the variable I'm passing in is incorrect).

Hope this helps

Dean