I've hit a brick wall with the X64 version with linker issues but I'll try to advise you as best I can:
First, set aside you 32bit build and start with a fresh set of code. Open MergeX64.sln. don't build everything in one shot. Do a batch build (it's several rows under batch build in VS2008). Whatever version you select at this point, you have to be consistent all the way to the end.
I've had the best luck with Release / X64. Start by building screw, expat, then pcre. You then can build merge and merge lang. After these builds, you can browse to the explorer shell extension project folder and select the x64 sln (x32 plugin won't work even if you run the x32 build). I had some issues compiling the plugin but they were very easy to resolve, the linker couldn't find xyz.lib, do a search for the file on your PC and add the path to it's folder in your VC++ directories under libraries (be sure you pick one of the amd64 paths). You don't to compile an installer for your own use. Just compress everything when you're done and run it like a portable app. To get explorer context menu, open a command prompt in your WinMerge folder and run:
Open WinMerge, go to options and activate the shell extension
Now I've personally haven't got passed compiling merge, I keep hitting this linker error which I know due to a reference to a library that isn't there, the problem is the errors are very vague and give no hint as to what library is missing. I just decided to stick with the 32bit build as it will be unlikely that I need to compare text files that will take up more that 4GB of RAM anyway.
I hope you have the best of luck with it. Take care.