These are likely two separate issues. First, VMWare keeps an identifier for each VM, and can tell when you have moved or copied one over. Whether you change or keep the UUID is more to make sure that particular instance of VMWare doesn't get confused. You definitely don't want more than one with the same UUID. Since this is also stored in the SMBIOS and readable by the virtual OS, keeping it might help.
As far as Windows Activation, VMs do virtualize most of the hardware, but they will for example report the actual CPU in the box. For example, even if you allocate only one virtual processor, it will still say "i7 Quad Core" in the System properties. Is the CPU for your MacBook and iMac different?