Hi,
(Edit:)
I think the best solution to your issue is to put the 'set text' action on the prefab in a state which has a global transition into it. This global event/transition should be a unique event, which you will send each time you want to change text. In the 'set text' action, set it up so that a global string variable is the text to be set.
Then the FSM that changes text, just sets the global string variable and 'broadcasts to all' the global event which transitions into the state with the 'set text' action.
This way you can avoid arrays and getting owner and such.
(Original reply:)
Basically one way to interact with prefabs is to put the 'get owner' action on the prefab and then use 'set FSM game object' action to communicate which object has the text to the FSM that needs to change the text.
So the prefab gets owner (so self) to a game object variable and then sets that game object variable as a game object variable in the FSM that changes the text. Then the text changing FSM sets the text on the game object variable that was set by the prefab.
(Otherwise you can use a global variable when you 'get owner' and then simply set the text on the global game object variable. Just be careful with this, especially if you want different prefabs to have different texts)
However I think for your situation you will also need to look into array maker to make things simpler. This is because you want to interact with multiple objects and it will be easier to do so with a list (array).
Hope that makes sense. :/
I'm a noob so I may be wrong and there may be even more elegant ways to do it, but good luck with it!