Hi,
I would totally do this at runtime, the cost of this kind of routine is totally fine really. The most important thing is to not do this every frame but only when the action begins.
but by the look of it, what you really need is a "Meta data" fsm. when I need some array or variables to be used bye several fsms, I have one fsm responsible for them, and all other fsm, go read and write to that fsm, and any value inside these fsm are temporary and must not be taken from granted. So everytime I go get a variable using GetFsmXXX, I work with it, then I use SetFsmXXX, and for more complex use, I send a global even "FSM A / JOB DONE" for example, so that other fsm that needs to use the same values from the Meta data fsm knows. Also I use wait next frame event sometimes so that upon reception of a given global event, "DO THIS", several fsm needs to work with the same data, so one fsm will do that straight away, while another fsm will wait one frame and then do something.
Bye,
Jean