If the watchdog is enabled and your program is still hanging I would carefully inspect where the watchdog is reset in your program.
You should do this only in a few routines, if you reset the watchdog too often you might be hanging for example in a loop where the watchdog gets reset but your program hangs there.
I once had a situation with a dataflash from Atmel where SPI communication did hang when a relais (which switched a motor) was switched on. Carefully selecting where the watchdog gets reset could at least trap this situation.
Not very easy to give you a good advice here, too many variables ...
Maybe you can try to connect no or as few as possible external sensors to your board and check if this makes a difference.
Also check if you have any unconnected (floating) pins on your processor they can do a low of harm in EMI situations.
best regards