preserveScrollOnRefresh problem, randomly going to top

When I insert a row at the end of my grid, preserveScrollOnRefresh: true makes the scroll position get preserved across the save (great!). But I'm experiencing a weird issue where the grid later scrolls to the top! It happens something like this:

Insert a record, and save (position is preserved)
Scroll up a bit and select a record
Scroll back down to bottom
Select bottom record
Select bottom-1 record
(bang, I'm suddenly at the top of my grid)

Any ideas of a work around? All solutions I've seen rely on hooking load, but this issue happens much later, and is actually triggered by a row selection.