Actually now it's happening in a fresh project, but only on objects that contain a custom action script I made, so I guess the problem lies there. Still though, it's weird that the games behavior would wildly change depending upon whether I have the FSM in question selected in editor or not. If anyone wants to take a look at my custom action and see if they spot anything weird I'd appreciate it!
Quick update, I have solved the problem by completely stripping my code of FsmVars. I thought they were working before, but the slight convenience they bring by not having to declare types is not worth the trouble.
I'm sure it was just me attempting to use a tool in a way that it wasn't intended, but for anyone thinking of interfacing with third party scripts, just declare FsmFloats, FsmInts, FsmStrings etc in a compound array. It's slightly more work but far more stable and easy to work with.