I do however still have the issue of scrolling to Row 0 after setting or patching the data. Looking into the source code, I found that on every patch, the element.scrollTop is set to this._lastVerticalScrollbarTopPosition. However, as far as I can see, this variable is initialised to 0, but never set to any other value. As such the scroll position is manually set to 0 on every patch.
Did I perhaps miss the point where the _lastVerticalScrollbarTopPosition is set, or is there a valid reason to always have the scroll position set it to 0?
But this fix has not been implemented yet, although it is planned in the milestone for the next release for a long time. For my project I currently use a custom local version of the panel package, with these two lines changed such that I can use it with this bug removed.