Could be a number of things, but it's a bit hard to know what without source code to view. Initial thoughts are:
Anything printed to the serial port when it crashes? (you might be able to use the decoder to see where in the code the crash is happening?)
Interrupt driven, perhaps on a lot of interrupts this is colliding with something else that is supposed to happen and causing a crash? (I get this with a light meter I added on to my WX station - during the day the frequency of interrupts increases to a point where the device was crashing / falling over.)