freeRtos time correction

Is the timer task priority higher than any tasks that use the timer API? If not, you can make your interactions with timers simpler by using that configuration. There’s even a small chance it could solve the issue you’re facing.

By any chance do you delete auto-reload timers in your application? If the timer task falls behind in its duties (which can happen easily when you call xTaskCatchUpTicks()), that kind of timer delete might cause your symptoms – see here.