Hola.
Me quedé pensando... Aparentemente el problema se produce en la verificación de la firma, pero si en este caso no la necesitas podrías omitirla:
Código Delphi
[-]
procedure TListView.SaveToFile(const FileName: TFileName);
var
i, j, aux : Integer;
Stream : TStream;
str : string;
ItemCount, SubCount : Word;
begin
begin
Stream := TFileStream.Create(FileName, fmCreate);
...
end;
procedure TListView.LoadFromFile(const FileName: TFileName);
var
Stream: TStream;
i, j, aux: Integer;
ItemCount, SubCount: Word;
str: string;
it: TListItem;
begin
if not FileExists(FileName) then
raise Exception.Create(Format('No se encuentra el archivo %s',[FileName]));
Stream := TFileStream.Create(FileName, fmOpenRead);
...
end;
Fijate, es sólo una prueba mas...
Saludos