Hola ecfisa, gracias por tu ayuda. Por mi parte llevo ya un buen rato (algunas horas) dandole vueltas a esto y no hay forma, voy a poner el código que tenía yo o mejor dicho, con el que pretendía hacer lo que tu has hecho.
Esta empeñado en hacerlo asi, por que conseguía volcar el contenido de una lista en otra y me decía a mi mismo "¿ostia, por que puedo volcar una lista y la otra no?"
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k: integer;
begin
for i:= 0 to lista1.Columns.Count -1 do
begin
lista3.Columns.Add;
lista3.Columns.Add.Caption:= lista1.Columns.Items[i].Caption;
end;
for k:= 0 to lista2.Items.Count -1 do
for j:= i to lista2.Columns.Count -1 do
begin
lista3.Columns.Add;
lista3.Columns.Items[j].Caption:= lista2.Columns.Items[k].Caption;
end;
end;
Y este su resultado...
Ese código es de un ejemplo nuevo que he iniciado solo para intentar lo de las listas, pero una vez conseguido usarlo con el proyecto de marras. Sé que mi codigo no llega a ningun sitio

pero insisto, si podía volcar una lista por que no podía volcar la otra? en fin... Ahora me pongo y miro lo tuyo, luego comento.
Gracias otra vez y saludos.