Du entfernst ja die Controls aus Panel3, damit werden es weniger und nach etwa der Häfte bist du mit dem Index hinter dem Letzten.
Code:
for I := [b][color=#ff0000]Panel3.Controls.Count - 1 downto 0[/color][/b] do
Panel3.Controls[I].Parent := Self.Panel1;
// oder
for I := 0 to Panel3.Controls.Count - 1 do
Panel3.Controls[[b][color=#ff0000]0[/color][/b]].Parent := Self.Panel1;