I have a feeling that this is part of a bigger solution; and there may be a better solution to this whole thing.... If we only knew what the big picture was.
I do recognize the basics of your separators, as they are ASCII Control Characters.
1. RS is Record Separator. This is similar to a Row
2. GS is Group Separator, this is analogous to a Column
3. EOT is End of Transmission. This and everything after is to be ignored
If we put this into XML you would end up with this structure
<RS>
06
<GS>VTCUP</GS>
<GS>P2865478547</GS>
<GS>T190917U111@9E005</GS>
</RS>
Based on this, I would recommend splitting multiple times:
The first pair of splits should be at the Control Chars (RS, GS)
Now it gets tricky:
1. The first characters after the RS are not Grouped; could this be a record ID?
2. The first character after the GS you are pulling out as well in your code
... Is this an attribute or similar (column name?). Maybe take SubString(0,1)?
3. You also have an undefined split (@) in your output, but not in code