I'm not sure about the System.map file; but here's the other part. At the top of the Makefile in /usr/src/linux-whatever, there should be a line: "EXTRAVERSION=something". change that to "something-new" and all the modules get installed to /lib/modules/<version>something-new", so you can safely recompile the same kernel version without obliterating your currently working modules.
Now for the conjecture -- try editing the startup script for your system. Look for this line in "/etc/inittab": "si:S:sysinit:/etc/rc.d/rc.S". That's the startup script; i think it's "/etc/rc.d/sysinit" in RH, but don't quote me on that. At the tail of that script, after the root partition is mounted read-write (or further in the initscripts after the /boot partition is mounted if you set it up that way), drop in the line: "ln -sf /boot/System.map-`uname -r` /boot/System.map".
"uname -r" will extract the correct version (including your made-up-suffix: EXTRAVERSION) and symlink the right file to System.map. note: before rebooting, rename the current System.map file to "/boot/System.map-`uname -r`" to avoid losing your curent System.map file during the boot. It also might be a good idea to copy the working kernel configs to the boot directory using the same naming scheme, just in case you need to save space and delete /usr/src/linux-whatever and want to later make a small tweek to the kernel.
hope that helps.
-t.