I suggest adding an “IsValid” node after each cast to something. (use the “?” IsValid).
For example you are casting to “SwordCharacter”, but not checking whether it gets it or not.
Put a PrintString out of the “Cast failed” from the IsValid nodes too so you know if one failed.
I can’t guarantee this will help find the problem, but it maybe that. So then you would need to ask yourself why it can’t find one of those things - are they dead? Been deleted? Something else?