A quick look at the PIC part you're using indicates that GP3 can be configured as a reset. All of the pins have multiple functionality, so debugging how the noise is upsetting your processor gets complex. NOTE - I'm not familiar with all of the PICs available, and the last time I did software was, well - - - the previous century.
People sometime try to kill noise with larger capacitors. Actually, a lot of noise issues can be stopped with a very small capacitor applied to the right spot with SHORT LEADS. Long leads on capacitors can negate their effectiveness.
You have I/O ports that are unused - ground them if they're inputs, or at least put a pull-up or pull-down on them even if you're not using them (you might have them active in your code without realizing it, and a long noise burst causing multiple interrupts and quickly put a uP into confusion and into reset. Put a 1nF or 10nF cap on the other inputs. You appear to have plenty of capacitance and filtering on your power supply - enough to power it for a few seconds with power removed. And don't forget the simple tricks - aluminum foil if you suspect a radiated path and not a conducted noise path.