I'd like to see you clean up these messages first. Every one of these messages represents something that isn't quite right. If we aren't recovering correctly from those conditions, it could be causing the crash/reboot cycle, which clears itself after going through the program/run transition. Before you tweak anything, make sure you have a good backup, because if this clears it up, I'm gonna want to study the program to try to understand what isn't working right.
The "A mutliscan instruction..." message is due to something like an MRX/MWX still being active when termination code is run. Termination code is executed any time a stage is disabled due to jump or reset, a program is stopped through exit or halt, or a task terminates. If a stage/task/program contains a multiscan instruction, you should *always* use the success/failed bits to enable the transition. The best way to think about what is happening is like killing the power to your PC vs doing a menu shutdown.
The string buffer overruns aren't too big a deal, but as a rule, you really should be using the correct buffer sizes for whatever you are doing. When this message happens it is due to something getting truncated.
The array index out of bounds can be of concern because we prevented you from doing something your code was trying to do. Both the code being out of bounds and the PLC ignoring the request are bad. I would want to understand what is happening.
It may well be that these are all non-issues...things that happened while developing and simply haven't been cleared. Hit the Clear All button at the bottom and see if they re-occur. If they do not, it's likely not the issue. If they do, I'd clean them up.
As for the hardware, it's possible, but I'm leaning to 'no' at this point.