рони, я ещё заметил при выводе в консоли значений соседей, что правильно устанавливаются только 2 из них - первые, а остальные почему-то 1.
Есть там метод Vertex:
PathFinding.Vertex = function(dest, cost) {
this.cost = cost || 1;
this.dest = dest;
};
..., явно в случаях двух последних (или одного - если квадрат к стенке прилегает) соседей cost не передаётся методу, т.е. устанавливается равным 1.