Hola.
Si no me equivoco el problema que estás teniendo es que no estás inicializando la lista, así que tendrías que cambiar esto:
Código Delphi
[-]
if Assigned(Lista) then
Lista := TList<string>.Create();
por esto:
Código Delphi
[-]
if not Assigned(Lista) then
Lista := TList<string>.Create();
y ya puestos, al final deberías liberarla con un free:
Saludos