Uhhhh... So I can't reproduce the issue anymore. It seems 'clean product' wasn't enough to clean my build folder, I had to use a key combination to expose another menu option for 'clean build folder'. After taking that step, it refused to compile saying the header file defining my class couldn't be found. It seems the header was omitted from the 'copy to output' build phase of another library project. After adding it there, it compiled again and the issue does not seem reproducible anymore.

I don't know the exact mechanic of how this would have caused the issue, but I guess it sort of (?) explains memory offsets being wrong if there was a stale class definition floating around.