Bitte nicht pauschal Properties speichern und dann wieder schreiben. Das wird nicht funktionieren, die Gründe hat Ralf schon genannt und darüber hinaus ist das eine riesen Fehlerquelle.
Auch binäre Serialisierung würde nicht funktionieren, weil alle verwendeten Klassen das Serializable-Attribut haben müssten.
Wenn Du einen derart komplexen Designer haben willst wie der WinForms-Designer es ist, dann solltest Du den auch nutzen. (Ich hab keine Ahnung wie, aber Ralf wird wissen was er sagt

)
Wenn Du dir aber einen Designer für z.B. UML-Diagramme bauen willst und für die Controls eine feste Zahl von Eigenschaften hast, dann solltest Du die direkt setzen, nicht per Reflection.
Dadurch wirst Du auch flexibler, denn wenn Du nur die Liste der Eigenschaften per Reflection liest/schreibst und dann wird eine Eigenschaft durch eine oder mehrere Andere ersetzt, sind alle bisher gespeicherten Stände inkompatibel und mal eben ändern geht dann auch nicht.
Außerdem solltest Du XML nehmen, das ist flexibler als CSV und .NET hat gleich mehrere Möglichkeiten zum XML Serialisieren, wo Du dich um so Geschichten wie Escapen nicht kümmern brauchst.
Das müsste sich mit dem XMLSerializer auch ziemlich leicht lösen lassen, wenn Du IXmlSerializable implementierst und mit dem XmlRootAttribute den Namen für das Element setzt.