Да твой код вообще должен мусор возращать.
Полумай сам над тем какие переменные используются при суммировании.
Это раз.
Два.
Вообще, что бы 2 раза не вставать, я бы писал через дин-массив и тип для возвращаемого значения.
Код:
type
THalfSumResult = record
LeftHalf : Integer;
RightHalf : Integer;
End;
function GetHalfSum(A : Array Of Integer) : THalfSumResult;
var
I : Integer;
MidIdx : Integer;
begin
Result.LeftHalf := 0;
Result.RightHalp := 0;
MidIdx := (Length(A) div 2) + Low(A);
For I := Low(A) To High(A) Do
If I < MidIdx
Then Result.LeftHalf := Result.LeftHalf + A[i]
Else Result.RightHalf := Result.RightHalf + A[i];
end;