Well, first off let me say that I'm not familiar with that chip variant, so I'd have to actually go look up the specs on the B64. But I can point out a few things you can check.
Have you run code and stopped it to read the registers to find out where things end up getting placed? That's one of the first things I would do to find out if the default setups weren't where or what I expected. Then I'd try to figure out where in the code they were being set.
In my case, I didn't want default setups, and I was running 100% assembler anyway, so I threw out all the code that the project tried to start with and I do everything myself. I know, I'm hard core assembler. It's like digging a fence post hole with a spoon. It takes a long time but I have absolute control of the dirt...
Ok, so what do you need to know about things.
Check the 'size' of any of the 'pieces/parts' that you're going to move around. This can be tricky, as you're going to use the size to figure out how to 'lay them in' so to speak. If you have a section of EEPROM that goes in with 2K of overlay, you can pretty much be certain that it has to go modulo 2K for it's start location. That is, it cannot 'straddle' a memory location that is the size of the block. Also, if I'm not mistaken, there were one or two parts that the granularity of where you could place the region was BIGGER than the size you could use. (I'm not sure if that was just an errata on early parts or what)
The other thing you need to check is priority of the regions. For example, if you try to overlay two things at the same address, who wins? Well, the winner is pretty well defined if you read through the spec sheets, and you can use that to your advantage. If you know one region will be visible over another region that you don't need the whole space for, you can use it to 'pack' your memory map to make other things easier to fit. That also can be a trick to use when you develop on one part but ship on another. In my case, I developed on a 9S12DP256 but shipped a product on a 9S12DG128 or other 128 variant. When I developed on the 256 part, I just let the map overlap parts and didn't care. As long as I could get at what I needed to when debugging code.
Mike
(the poster formerly known as mke_et)