Попробуйте так:
EnableHeroAI(hero, nil); -- выключить мозги героя
sleep(1);
SetObjectEnabled(hero, nil); -- убрать стандартный обработчик касания (бой)
sleep(1);
Trigger(HERO_TOUCH_TRIGGER, hero, func); -- установить свой обработчик
Именно в такой последовательности и с паузами. Насколько я помню, пока не выключишь AI героя, на него нельзя вешать свои функции.