As you discovered, running the 32-bit Windows 7 install SETUP from within 32-bit WinXP and then choosing the "custom" approach so you can create a brand new install on a partition of your choosing (e.g. "N") will end up with that 32-bit Windows 7 running from that partition when you boot to Windows 7. Windows 7 will see itself on a partition whose letter is "N" (e.g. N:\Windows) and WinXP will be on "C" (or wherever your others are). All drive letters will be retained, and you can use BCD to boot from any of them just as you'd expect.
When you run the 64-bit Windows 7 install SETUP, it obviously cannot be run from under the 32-bit version of any operating system. So you need to boot from the CD as you've discovered, but you'll still get to pick the target partition using the "custom" installation method. However, again as you've discovered, that installed 64-bit Windows 7 will see itself on its own assigned drive letter of "C" and all your other partitions will be "shuffled" and almost certainly not what you'd wanted and not what you want to end up with.
I'm afraid there's nothing you can do about it.
However at least you certainly can use Disk Management to re-letter all of your partitions to be anything you want, but you'll NOT be able to re-letter the Windows 7 64-bit boot partition which will simply have to be "C" in your case (i.e. one copy of 64-bit Windows 7 installed). But all the other partitions other than what is your "C" in the 32-bit environment can be relettered exactly as you want. Your 32-bit "C" cannot be re-lettered to "C" because your 64-bit Windows 7 is installed as and forced to "C".
I had the same experience. What I decided to do was call my new target partition for 64-bit Windows 7 as "O" when seen by my 32-bit WinXP (with 64-bit seeing itself on "C"). When booted to 32-bit WinXP (seeing itself on "C") I lettered the 64-bit Windows 7 partition as "O". At least "C" is the boot partition for either world, and "O" is the opposite boot partition for either world.
Through Disk Management after Windows 7 got installed, I corrected the "shuffle" of my other partitions and CD and removable drive letters to be 100% consistent no matter what OS I'm booted to. So the rest of the non-boot partitions on my machine (D-N) are now lettered identically in all OS's.
Nothing you can do about this, except to minimize your own confusion by lettering your non-boot drives identically from all OS's (using Disk Management). But 64-bit Windows 7 will force its apparent boot drive letter to C when using the install CD to run from.
Note that Windows 7 creates its own special un-lettered "system" partition (seems to be 100MB) to support the new BCDEDIT multi-boot capability which used to be under the control of BOOT.INI (and NTLDR, etc.) under WinXP.
If you have as many installed/bootable copies of Windows as you describe, you might investigate a
free product named EasyBCD which is much friendlier than BCDEDIT.