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 tests

mame spec128 tests

I'll post my latest diff shortly smile