Maybe you are not very familiar with the theory and operation of booting a NT based system.
ETA I feel like I have a problem, I do not know what I am doing, I only do what I am being told but don't know what's going on behind the scenes
Brief "crash course" :
All "MS" Operating System are quite "arrogant".
When you install them they give you NO option but "automagically" take possession of your hard disk and do to it whatever they see fit.
The standard booting sequence (for windows NT up to Server2003) is the following:
BIOS->MBR->active primary partition bootsector-> NTLDR-> BOOT.INI choices -> loading of the NT OS
The BIOS just reads the MBR (first sector of first disk in boot sequence).
The MBR contains CODE (that normally only loads the first sector of the active primary partition in the partition table) and DATA (the partition table, the Disk Signature, the Magic bytes)
The PBR (Partition Boot Record) or VBR (Volume Boot Record) or bootsector is the first sector of the partition loade dby the MBR. It contains as well some DATA (the so called BPB or Bios Parameter Block containng info on the volume, the filesystem, etc.) and some CODE (the code for a NT system load or chainloads NTLDR, we will call this code "NT52" you'll understand later why).
With Vista (and following, like 7) the booting sequence remained the same BUT the actual files involved changed:
BIOS->MBR->active primary partition bootsector-> BOOTMGR-> \boot\BCD, choices -> loading of the NT OS
The MBR uses slightly different code, but to the SAME effect (simply loads the first sector of the active primary partition in the partition table)
The PBR has different code that loads BOOTMGR (we will call this code "NT60", you'll understand later why)
 Normally when you install Vista or later over a disk that has already a BOOT.INI the choices in there are "imported" automatically in the \boot\BCD, but it depends on the exact way the install was performed (on what was actually "visible" during the install)
 The BOOTMGR doesn't read only the \boot\BCD, but also (if existing on the same partition) the BOOT.INI, BUT it "discards" each and every entry involving an arcpath (like multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect) and ONLY reads those pointing to a file (like C:\grldr="grub4dos")
There is an utility bootsect.exe that can be used with parameters:
/NT52 <- this will re-write the PBR CODE (leaving the PBR DATA "as is") with one pointing to NTLDR
/NT60 <- this will re-write the PBR CODE (leaving the PBR DATA "as is") with one pointing to BOOTMGR
Most probably when you re-installed 7 you have hidden the partition where XP was or however the previous XP installation was not detected and was not added to the \boot\BCD.
The PBR CODE was re-written anyway pointing to BOOTMGR.
The "i only get a black and white menu with option of loading Win7 or grub4dos." is likely a "merge" of the contents of the \boot\BCD (ONLY the Windows 7) and of the BOOT.INI (only grub4dos, since arcpaths entries are ignored).
It is easy to verify this, just add to the BOOT.INI a line like:
C:\afakeentry="A Fake Entry"
and see if it is added to the "black and white menu with option of loading Win7 or grub4dos".
If you can re-cap your current situation of disks I might be able to provide specific instructions on how to solve the problem
, in the meantime you can try selecting grub4dos in the choice you get, then press c to get to command prompt and at it:
root chainloader /ntldr bootpressing [ENTER] after each command.
You should be able to boot to XP "as before" (i.e. see all the choices you have in BOOT.INI.
When you run the "root" command, grub4dos should provide you with the disk/partition number, like (hd0,0), and when you run the "chainloader /ntldr" it should provide info like "Will boot NTLDR from.....". Please jolt down these info before issuing the "boot" command and post them.