Make a short program to rapid backwards and forwards fairly close to the limits, with lots of instant direction changes.
If you hear any clunks on direction change your feeds are too fast.
While it is rapiding try to restst the table movement. Any clunks?

Clunking usually occurs when when steps are missed.
Once you slow it enough it won't loose position, unless it has stiff spots.

Mach3's low level driver controls acceleration and deceleration. Anything that makes the PC hiccup can interrupt the smooth pulse train to the driver.

Make sure drivertest.exe works perfectly.
As it happens after 5 hours, when the steppers are well warmed up, it sounds like your rapids are a bit fast.
Are the current reduction switches set to reduce the stepper current after an axis stops?

If current reduction is on steppers run cooler, but the holding torque is reduce.
It is possible another axis move can overload a stopped axis by excessive tool loads.

Programming problems can be caused by stale variables. #123 was zero yesterday.
Program runs and changes #123 to say 100.
Next time a program runs, #123 will still have 100, even after powerdown. That one gets you the next day!.
It broke an cutter for me on the second pass around a job that worked the previous week with no drama.
#123 was zero when run the first time a week before. Another program used #123 and left it with 100. Subtle gotcha that one.

Be ready to blame a program. Just because it worked today doesn't mean it is bullet proof tomorrow.



Another cause can be noise injected via mains/earth wiring. Are you running the PC and the machine on the same power circuit?
That always helps.
Do you ever get EStop occurring for no good reason? Usually PC/Mains earting problem