Du schaltest die Bilder ja auch nur an, und nicht wieder ab.
Wenn das gleiche Form jetzt mehrfach hintereinander angezeigt wird, dann sind irgendwann alle Bilder sichtbar, und es wird vermutlich das angezeigt, was zuvorderst liegt.
Du solltest im Initialisierungs-Code entweder alle Bilder vorher auf visible := false setzen, oder folgendes machen:
Code:
procedure TErgebnisse.FormActivate(Sender: TObject);
begin
Schlecht.Visible := n < 4;
Ok.Visible := (n > 3) and (n < 7);
Gut.Visible := (n > 6) and (n < 10);
Perfekt.visible := n = 10;
end;