StringReplace ist eher sehr langsam ... je länger der String und um so mehr Ersetzungen, um so langsamer wird es.
Aber wenn schon, dann könnte man ";G" in ein "," tauschen, dann noch "<G" und ">" entfernen (
Delete) und das Ganze dann als DelimitedText mit "," als Delimiter an eine TStringList übergeben.
Ansonsten würde ich es noch mit PosEx und Copy versuchen.