Der Quellcode macht was er soll!!
Das sehe ich anders. Du erwartest, dass die Zuweisung
MahnungenSL.DelimitedText := pSLInput;
die Stringliste erweitert - tut sie aber nicht! Sie wird dagegen komplett ersetzt und enthält am Ende nur die Daten des letzten Records.