еще раз, герой преграждает единственно возможный путь к нужной клетке? тогда все работает согласно механике, CanHeroMove считает героя непроходимым препятствием. можно добавить проверку на такую ситуацию и если она возникает, двигать Эрлинга в местоположение вашего героя, например