Das byteText Array erzeugt du in der Schleife jedes mal neu. Bei jedem Durchlauf ersetzt du also das Array mit einem anderen Array und alles von vorher ist weg.
Das Array mußt du vor der Schleife erzeugen und die konvertierten Bytes immer an die richtige Stelle ins Array schreiben.
In byteText stecken byte(s). Im foreach solltest du dann auch byte benutzen und nicht Object.
Alternative:
Ein Char in deinem String Text ist nicht äquivalent zu einem oder mehreren Bytes. Es gibt verschiedene Encodings die es zu berücksichtigen gilt. ASCII ist was anderes als Unicode und wiederum was anderes als alle möglichen anderen Varianten von Encodings.
Um deinen string in Bytes zu verwandeln kannst du einfach die entsprechenden Methoden der Encoding Klasse verwenden. Z.B.
C#-Quelltext
1:
| var byteText = Encoding.ASCII.GetBytes(Text); |
Zum rückwandeln einfach
C#-Quelltext
1:
| var text = System.Text.Encoding.ASCII.GetString(byteText) |