Hola Ictiandro, antes de nada decirte que si usas las etiquetas [delphi][/delphi] tu código se mostrara mucho mejor, y sera mas fácil leerlo.
Con respecto a tu pregunta, no entiendo porque utilizas un array of bytes, creo que es un paso innecesario. De todas formas aqui te dejo como lo haría yo, espero que puedas sacar alguna idea interesante.
Código Delphi
[-]
function Guardar(Filename: string; Buffer: Pointer; Pos, Count: Cardinal): Boolean;
var
F: File;
Escritos: Cardinal;
begin
Result:= FALSE;
AssignFile(F,Filename);
{$I-}
Rewrite(F,1);
{$I+}
if IOResult=0 then
begin
inc(PByte(Buffer),Pos);
Escritos:= 0;
BlockWrite(F,Buffer^,Count,Escritos);
Result:= Escritos = Count;
CloseFile(F);
end;
end;
var
Str: String;
begin
Str:= 'Hola mundo maravilloso';
Guardar('d:\1.txt',PChar(Str),5,5);
end;