Tout d'abord, Grub ne distingue pas sda et hda et dès lors, l'écriture (sd0,1) n'est pas reconnue.
Ensuite, Windows, pour démarrer, a besoin de se situer sur la première partition active; en l'occurrence, résidant sur sda qui est vue comme hd1, Windows ne peut directement se lancer.
La solution réside dans la fameuse clause map qui permet de "leurrer" Windows:
la documentation
title Windows XP
map (hd1) (hd0) (à ajouter)
map (hd0) (hd1) (à ajouter)
rootnoverify (hd1,0) (en remplacement de root (hd0,0))
makeactive
chainloader +1