Что-то мне кажется, что ты что-то напутал в реализации алгоритма.
Можешь рассказать сам принцип, а то у тебя получается, что ты сравниваешь все ячейки со всеми, что, как мне кажется, не правильно.
ЗЫ. Сравнивать по епислон лучше так:
Код:
function CompareValues(a, b, eps : Extended) : Boolean;
begin
Result := abs(a-b) < abs(eps);
end;
Ну и убери паразитные строки типа
Плюс поправь форматирование кода, а то нечитабельно.