bei sowas
StrMg.FStringList:= StrMg.FCopyList;
ist das ganze kein Wunder. damit verwirfst du den InstanzPointer von StrMg.FStringlist und weiß einfach eine andere Instanz zu. Da wird nix kopiert außer der zeiger auf die Liste.
Desweiteren ist der Privatebereich dafür da das andere Objecte nicht auf die dinge Zugreifen, in deinem Fall greifst du aber von deinem TForm-Object auf den Privatebereich von deinem Manager zu, dann kannst du das mit dem Private auch lassen
Wennd u Button1 mehrmals klickst, kommt dann eignetlich ein Fehler?