Creo que el problema está en el procedimiento CreateObject, concretamente aquí:
Con el "with" estas dando a entender que utilice LabD[i], así que en la asignación que hay a continuación:
en realidad lo que estás haciendo es
Código Delphi
[-]
LabD[i].Parent := LabD[i].Self;
O puede que no, no lo he comprobado, pero es lo que se me ha ocurrido.
De todas formas, la sugerencia de utilizar un TObjectList es buena.