解決した。
ひょっとしてあまり子作成で階層にしすぎると曾孫あたりでローカル変数の動作がおかしくなるのだろうか。
代わりに親キャラクターに同じ処理をさせたら上手くいった。
多分俺のスクリプトに問題があっただけだろうと思うけど。