MEGA 2560 - Odd Timer Behavior first loop and intermittent thereafter

The output is meaningless without further information. Also OCR is ambiguous, is it the TOP value or the compare match value? How is it related to the stepper movement?

If you need arrays with bounds checks then use one of the many C++ STL classes.

As long as you can not provide a description of your algorithm and only argue with code and registers I can not help you any further.