Para liberar y destruir objetos en Delphi, no se debe llamar directamente al destructor ,sino mas bien al método
Free, éste ya se encarga de llamar internamente al destructor, no sin antes hacer algunas cosas adicionales..

En otras palabras tu código anterior quedaría de ésta forma:
Código Delphi
[-]if Components[i] is TGroupBox then
TGroupBox(Components[i]).Free;
Saludos...

__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7