After fixing a few bugs (IO Contention wasn't working, and my floating bus timing and border positioning were a few tstates out) all the tests when running mame give the same results as my actual spectrums.
For completeness, here are some screenshots of the tests running on mame:
mame spec48 testsmame spec128 testsI'll post my latest diff shortly