Ok so I've done a load of reading around and I think that when I flashed CM9 that it automatically updated my bootloader, so presumably I'm now running with ICS bootloader. Could this be what was causing my issues?
CM9 doesn't automatically install a bootloader unless you flashed the ODIN version and selected to flash a bootloader. I've come from GB and have never flashed a different bootloader from the time I got my phone. Have you tried installing an old GB ROM from ODIN, flash CF-Root for that version then follow the flashing instructions for this ROM i.e format /system in mounts and storage, wipe data/factory reset, wipe dalvik and then flash the base + essentials. You won't get a much cleaner install then that.
If you want to rule out the bootloader go find Intratech's thread with stock firmware and download the old bootloader from there and then do all the wipes etc and flash this.