TList es una clase que simplemente guarda una lista de punteros. Si copias los punteros, no duplicas la lista, pues apuntan al mismo sitio y si destruyeras el original, la copia se corrompe (sus puntero no apuntan a nada válido).
Debes realizar una copya de cada objeto apuntado.
Te muestro un ejemplo con cadenas:
Código:
TList *List1 = new TList;
TList *List2 = new TList;
List1->Add("uno");
List1->Add("dos");
// Añado una copia de cada elemento de List1
for(int i=0; i<List1->Count; i++)
List2->Add(StrNew((char*)List1->Items[i]));
Saludos.