В конце забыли обнулять s, да и максимальное не запоминали. Выводилось количество повторяющихся чисел вообще. Исправленный вариант ниже:
Код
program masiv;
uses crt;
const n=10;
var a:array [1..n] of integer;
i,s,p,f,smax:integer;
begin {заполняем массив }
    s:=1;
    for i:=1 to n do
    begin
        a[i]:=random(9);
        write(a[i]:2);
    end;
    writeln;
    while f=0 do
    begin {сортируем по возрастанию}
        f:=1;
        for i:=1 to (n-1) do
        if a[i]>a[i+1] then
        begin
            p:=a[i];
            a[i]:=a[i+1];
            a[i+1]:=p;
            f:=0;
        end;
    end;
    for i:=1 to n do
    begin {выводим отсартированый массив}
        write(a[i]:2);
    end;
    writeln;
    smax:=0;
    begin {что-то не понятное}
        for i:=1 to (n-1) do
        if a[i]=a[i+1] then
                s:=s+1
                else s:=1;
        if s>smax then
        smax:=s;
    end;
    writeln('максимальное количество одинаковых элементов.=',smax);
end.