Freescale no longer supports the Mac and Windows desktop version of CodeWarrior. However, I'll try a shot at an answer here.
The mach-o code uses a completely different calling and access conventions from Carbon, which uses code objects called code fragments. The two are incompatible, so that would explain why once you've set the build target up as mach-o, you can't go back to debug Carbon code. You probably need to set up two projects, one with a Carbon target and one with a mach-o target.
I don't know enough about the last Mac versions of CodeWarrior to explain the odd behavior. Sorry.
---Tom