You should be able to use your scatter file to place all your unit test functions into a separate load region. When you link your image you'll get one AXF but when you convert it into a binary file for loading into memory you should get two files, one for each region.
You can also have some marker in the unit test image that your ROM image can check for to verify that the binary is loaded. This check would replace your hadTestInMemory check in your code. Again you should be able to place some specific RO data at the beginning of the second binary file using your scatter file.
I can probably help out with some more details as you progress.