Die Bereiche in denen die ; nicht ersetzt werden sollen liegen doch alle in {}
Du suchst jetzt einfach die Klammern und suchst dazu die schließenden elemente.
Dann machst du statt mit Stringreplace das mit Pos und wenn das ergebniss von pos innerhalb der Klammern liegt, macht er nichts, liegt es auserhalb ersetzt er es einfach.
Klingt in meinen Ohren logisch, versuchs einfach mal