I thought it was normal to have heaps of FSM's and confusion. I have a project which I come back to on and off, and I actually put together a quick 'manual' to refer to.. because when I look at it again it's like someone else made it and I can't remember how it's all hooked together. This waits for that, that needs an int from this, etc. I normally spend some time just following each FSM back and forward to see where they are sending events to and who is sending an event to kick them back in to action again.
I think I gravitated towards what djaydino said about 'data'. For example last night I made a score system for a mini-game, which is handled by an FSM which owns the int but does nothing (other than reset that int on start). Then each individual thing that adds points gets that fsm int, adds to the copy it made of it, then sends the modified copy back to the score keeper FSM. I figure this avoids situations like when the score keeper may be half way through a process and gets interrupted by another score update or etc.
I had a quick look at the RunFSM page, but I don't get what you would do with it or how it related to confusion about FSMS working together. It's like a prefab/template system, but that's all I can make of it. Wouldn't that be just like using an actual gameobject prefab with an FSM in it?