I tried to recreate the bad partition problem again (from the saved mbr sector), made sure XP wasn't booting any more and then I run in Linux:
sfdisk -d /dev/hda | sfdisk --no-reread -H240 /dev/hda
This seems to have fixed it just like my original procedure (well much easier :) ). I even did a byte compare of the mbr with the one I restored before using those long steps and they are the same.
-- Radu