i think this is part of the problem, you’re connecting each branch to the InputExec but that would break previous connections so only the last IfNode would be connected.
usually you’d cache a UEdGraphPin* LastThen = InputExec outside the loop and then in the loop update LastThen = BranchElseNode