I assembled the attached demo from your fragments (it would have been better if you'd have posted a complete compilable project), and this runs fine...
So, I cannot present you exactly what is wrong. But I can give you some advice how to improve the code:
Your code is difficult to read because of the unnecessary usage of "form1" in front of almost every identifier. Beyond that, NEVER use the form's variable name inside the form's implementation - this will make your code work only if the instance of TForm1 is named form1. So, better replace your first code fragment with
tls[nbr]:=TLineSeries.Create(Chart1);
tls[nbr].Title:=edit3.text;
tls[nbr].SeriesColor:=ColorBox1.Selected;
src[sbr]:=TListChartSource.Create(self);
tls[nbr].Source:=src[sbr];
tls[nbr].AddXY(0,0);
Chart1.AddSeries( tls[nbr]) ;
nbr := nbr+1;
sbr := sbr+1;
Anyway...
What is tls? An array of TLineSeries, probably? But how do you define the array length?
The same with src which seems to be an array of ListChartSource? Again, is the array properly defined? nbr and sbr must not run out of the array dimensions. You don't show any code preventing this. Also, after destruction of series and sources you should set the array elements to nil to signal that they do not exist any more, or in case of dynamic array you should set its length to zero.
As for the series, there is no need to store the line series in a separate array because the chart already takes care of that. Double storage is always bad because you have the burden to synchronize them. You can use Chart.Series[ i] to access the series contained in the chart. The type, however, is very general and you may have to cast it to the used series type in order to access all properties:
// Use dotted pens for all line series
for i:=0 to Chart1.SeriesCount-1 do
if Chart1.Series[i] is TLineSeries then
TLineSeries(Chart1.Series[i]).LinePen.Style := psDot;
BTW, if you call the destruction code at the end of your program you don't have to do anything at all. Since TChart, TLineSeries and TListChartSource are owned by the form (you did add an Owner to their constructors) there is no need to destroy them explicitely - the form will do this automatically.
If you call it somewhere else, your code is a bit too complex: RemoveSeries and DestroySeries do the same, call only one of them. Or simply call series.Free. It will automatically remove the series from the chart's series list and then destroy it.