I get time calculation error/driver error only if speed doesn't match speed hack value. 3 floats of Speed multiplier etc don't seem to really matter(though they may use them to detect speed hack online). About the address changes per song, you can do AOB scan to find the new address easily. Some patterns don't change even after you change song. Speed and 1 of speed multiplier always have fix distance(offset) between them. And so as the other two speed multipliers. So two AOB scans are enough for this.
Edit: well, speed hack value should be set to something matched with speed anyway, because Average frame time difference of the replay depends on realtime.
For example, Mod->DT, Speed->None, Speed Hack->1 = replay has [None] mod frame time difference, which can be caught by osu!ReplayAnalyzer easily.
Mod->DT, Speed->None, Speed Hack->0.66 = replay has [DT] mod frame time difference, which is "legit"