You have some very small axis movements that must occur and to accomplish those movements in the time allowed you need adequate motor torque to do it. I think that is your problem in some cases. High stepper torque exists at lower motor rpm's and decreases as the rpm increases.
So lower the max velocity, reduce feedrate, play with the acceleration to see how it goes.
Sometimes you can't hear the axis skip and the axis recovers, but, it's position is not correct and may be a small or large amount.
You could put a dwell in the code to see if some part of the code is the cause provided you have an independant axis readout. I didn't have much luck with it as the exact skipping part of the code was not repeatable. PLus there was 1000's of lines of code.........
Anyway, play around and see how it goes. Yes this can be frustrating. I will add that manny times you don;t have a problem until you start doing 3d work
and this kind of thing shows up.
RICH