If you assing a new behaviour dialogTreeController.behaviour = tree;
1st.
The TreeController receives a copy of the tree, not the same object. It’s copied over via serialization. Somehow any IDialogueActors that are not assigned via the Editor are lost on the way. Most likely because it’s serialization state when starting the dialogue is from before the assignment.
2nd.
Because of that, you have to actually assign any actor reference after the call to StartDialog and to the behaviour member of the controller itself.