I tested with an SSD1306 but I have been unable to cause the offset to change in normal operation (I was previously able to do this by increasing the I2C baudrate). What I did instead was to add code to create an offset change in the display loop, and I could see this occurring and being corrected, and so I believe the previous fix for this is still working to correct changes to the offset.
You might like to try the development version of mpd_oled, as this includes different driver code and has a specific driver for the SSD1309
Before following the instructions, first stop and disable the current mpd_oled service fwith
sudo systemctl stop mpd_oled
sudo systemctl disable mpd_oled
The libu8g2arm build takes quite a while. After mpd_oled is built and installed, the test command line would be, e.g.
mpd_oled -o SSD1309,128X64,I2C -f 25 -b 15
This version of mpd_oled has no correction for the scroll offset, as I am unsure if it is an issue that is specific to the old driver code and so will wait for a report with the new driver code before adding it in.