>>Is this because the patches were originally authored on an expander?
It would be interesting to compare a patch that works, with one that doesn't work.
You can send one of each from the M12 to Midiox, then save each one as a separate file.
You then need to view both files with a hex editor.
I don't remember what the structure of an M12 patch looks like compared to an Xpander patch, but the Sysex ID should be different at the very least, and the length of the M12 patch is probably longer.