С кораблем я использовал два разных трюка, оба работали: ставил на воде корабль, рядом с ним на берегу героя, и вызывал либо MoveHeroRealTime с координатой корабля, либо MakeHeroInteractWithObject с именем присвоенном кораблю. Не помню точно какие там требования к герою, возможно это сработает только для героев с выключенным AI.