The ticks will always be recalculated from scratch in QwtPlot::updateAxes - the call where the calculation happens is QwtScaleEngine::divideScale.
Guess your code does changes behind the back of the plot, so that the necessary updates are not running ?

Uwe