I've managed to get back to music again and still there is no solution to the variable MIDI monitoring offset while recording MIDI. I've tried uninstalling my M-Audio soundcard and SX3, and re-installing them, but it makes no difference.
In summary, when I play in MIDI on my keyboard (whether recording it or not), the rhythm of the notes I play in is not what I hear from my monitors. It seems that the presence of existing MIDI notes in the song being played back is somehow interfering with the output of my keyboard being sent to the monitor speakers.
For example, if there is a MIDI bass line or piano part already recorded and I try to play or record a regular 8th note meter on hi-hats over it, what I hear while I'm playing it is an irregular rhythm on hi-hats, which makes playing in time very difficult! If I then listen back to the recording, however, what was recorded was the same regular 8ths that I played in, so the existing MIDI parts (bass or piano) are interfering with the signal after it has been recorded and is on the way out to the keyboard/tone generator, soundcard and speakers.
The problem doesn't occur if there are no previously recorded parts playing back OR if the parts (e.g. bass or piano) have been muted.
As it stands, sequencing MIDI is just impossible as I hear a stutter, irregular version of what I'm trying to play in, which is totally offputting. (I wish music software/hardware was like any other product where if it goes wrong you take it to the company you bought it from and they fix it, instead of being told to go and ask other customers to try to help you