>>Good catch whether or not it affects the problem. (I try hard to write code that doesn't depend on the current workarea, but ...)
While the issue affecting scrolling suggests it's not the cause, I've also seen occasional bizarreness if Grid events mess with the grid record pointer or content during the event sequence. Perhaps consider moving focus to another control in the InteractiveChange and then bring it back after the Grid refresh()?
And then there's the code in a sneak event that fires unexpectedly... might be worth tracking what else might fire when the code runs. E.g. is the grid alias used anywhere else that might provoke more events?
"... They ne'er cared for us
yet: suffer us to famish, and their store-houses
crammed with grain; make edicts for usury, to
support usurers; repeal daily any wholesome act
established against the rich, and provide more
piercing statutes daily, to chain up and restrain
the poor. If the wars eat us not up, they will; and
there's all the love they bear us."
-- Shakespeare: Coriolanus, Act 1, scene 1