A ver. Dices que IndiceComponente vale 1. Entonces es como si hicieras:
Código Delphi
[-]
SetLength(Componentes, 1);
...
SetLength(Componentes[1].Cols,Col);
Pero el índice 1 para la variable Componentes está fuera de rango. Recuerda que los arreglos dinámicos siempre están basados en 0 de manera que el único elemento de Componentes tiene índice 0 y no 1.
// Saludos