Как я понял, на ограничения по движению влияет Interrupt Flags (у спеллов предоставленных Den он равен 0, и поэтому клиент нормально кастует). Но например у того же 56641 Interrupt Flags: 0x0000000F. Поэтому клиент будет слать и шлет CMSG_CANCEL_CAST при движении. Я думаю, что нужно какой-то флаг указывать в SMSG_SPELL_GO (меняющий Interrupt Flags у клиента чтоли) чтобы все ок было, но вот вопрос какой?
Есть конечно вариант захакать Spell.dbc у клиента, или забивать на CMSG_CANCEL_CAST при определенных условиях, но сами понимаете что это не тру