Which re-mapping you did in grub4dos before?
I used memdisk as described lately #243
http://reboot.pro/to...-10#entry197386memdisk shift the reals disks and map the image to hd0, menu.lst translation:
map (hd0) (hd1)
map --mem /boot.vhd (hd0)
map --hook
Something *like*
map --mem /boot.vhd (hd0)
map --hook
right? 
The original hd0 is overwritten, dosn't exist at BIOS level anymore:
bootmgr can't load winload.exe.
A good solution supports:
-bootmgr read \boot\bcd
-bootmgr read winload.exe
-the running windows can read and write to \boot\bcd. This resolves shutdown, reboot and sleep
The rule seems to be:
Bootmgr reads \boot\bcd from MBR disk using BIOS routines.
And bootmgr reads winload.exe from MBR or GPT disk using BIOS routines.
Both disks (the image file one and the real one) has to be available at BIOS routines.
And automatic load \boot\bcd: bcd has to be loaded from BIOS 0x80 disk. The disk id at running windows is not importand.
Maybe setting hard disk num at 1?
Or passing an edx= parameter
How to load \boot\bcd and winload.exe?
And the running windows should find boot\bcd.
Default boot, reference
map (hd0) (hd1)
map --mem (,2)/windows/boot.vhd (hd0)
map --hook
root (hd0,2)
chainloader /bootmgr
Will boot NTLDR from drive=0x80, partition=0x2(hidden sectors=0x1080)
boot
Windows doses boot. bcdedit does not list boot options.
"SystemBootDevice"="multi(0)disk(0)rdisk(0)partition(3)"
"FirmwareBootDevice"="multi(0)disk(0)rdisk(1)partition(3)"
Run mount_vhd.cmd and bcdedit list boot options: \boot\bcd is loaded automatically by unknown rules.
With a file %SystemDrive%\boot\bcd
map --mem (,2)/windows/boot.vhd (hd1)
map --hook
chainloader --edx=0x0281 (hd1,2)/bootmgr
Will boot NTLDR from drive=0x81, partition=0x2(hidden sectors=0x1080)
boot
Windows doses boot. bcdedit does not list boot options.
Run mount_vhd.cmd. bcdedit does not list boot options: \boot\bcd is not found.
Equal experience without a file %SystemDrive%\boot\bcd
With a file %SystemDrive%\boot\bcd
map --mem (,2)/windows/boot.vhd (hd1)
map --hook
root (hd0,2)
chainloader /bootmgr
Will boot NTLDR from drive=0x81, partition=0x2(hidden sectors=0x1080)
boot
Windows doses boot. bcdedit does not list boot options.
Run mount_vhd.cmd. bcdedit does not list boot options: \boot\bcd is not found.
Equal experience without a file %SystemDrive%\boot\bcd
Idea: Does bootmgr read \boot\bcd from GPT?
With a file %SystemDrive%\boot\bcd at (hd0,2), that's the GPT partition.
chainloader --edx=0x0280 (hd0,2)/bootmgr
Will boot NTLDR from drive=0x80, partition=0x2(hidden sectors=0x33000)
boot
\Boot\BCD not found.
Bootmgr searches \boot\bcd at BIOS device 0x80 and MBR partiton 0x2
map --in-situ (hd0,2)+1 (hd0)
map --hook
root (hd0,0)
chainloader /bootmgr
\Boot\BCD is found, winload.exe is missing.
A tag file \windows\marker.7 added. And locate adjusted to (os)device in boot\bcd
http://reboot.pro/to...e-3#entry192417map --in-situ (hd0,2)+1 (hd0)
map --hook
root (hd0,0)
chainloader /bootmgr
\Boot\BCD is found, winload.exe is found. Drivers are loaded from the virtual MBR disk.
Next BSOD 0x7b Missing boot device: the switch to the GPT partition failed.
Idea: adjust MBR checksum after map in-situ
How to write to a MBR after map --in-situ; --hook?
This failed
map --in-situ (hd0,2)+1 (hd0)
map --hook
write --ofset=0x1A0 (hd0)+1 01A0
cat --hex (hd0)+1
dd if=()/mbr_patch of=(hd0)+1
cat --hex (hd0)+1
Is it possible to write to a in-situ MBR?