OK. Let's review lilo a bit. If you give the command: /sbin/lilo, with no parameters, it will write to the MBR of the disk it's on. If you have a system with xp on the master (read primary) disk, and Linux on the slave (read secondary) disk, when you give the /sbin/lilo command, lilo writes to the MBR of the secondary disk, not the primary!
So. How to fix this. First, determine where (which disk) xp is installed; that's obviously the primary. Then do /sbin/lilo <the disk xp is on> to write lilo to the MBR of that disk, and not the disk Linux is on.
From the contents of your post, lilo probably did install to the MBR of hde, but hde is not the primary, it's the secondary, Xp is on hdg, and since the xp bootloader keeps coming up, hdg is the primary.
Try /sbin/lilo /dev/hdg, or something along those lines to put lilo on the MBR of the primary hard drive.