Во-первых в том файле что ты выложил всего 90036 числа, а значит этот цикл уже будет некорректный:
Код:
for y := 0 to 192399 do
begin
a[y] := StrToFloat(f[y]);
end;
Во-вторых я не пойму зачем вообще переворачивать байты в числе типа Single.

Или ты думаешь что взяв корректное число типа Single и перемешав в нём байты как тебе вздумается ты получишь опять корректное число? Вот почитай что означает каждый байт в числе типа Single:
Число одинарной точности