Hmm, el _problema_ es que estás definiendo un arreglo de bytes demasiado grande para los datos que recibes, al momento de convertir esos bytes en un string, estos se reemplazan por el caracter 0 (\0 en c#), teniendo como resultado un string de 100 caracteres. Ahora, para solucionar esto, puedes recibir el número exacto de bytes que te envían o hacer un _hack_:
<font size="2">
Código PHP:
ClientInfo.Nickname = System.Text.Encoding.UTF8.GetString(BufferForNickname).Replace(Chr(0), "")
Saludos
PS. Es mejor usar UTF8. No es necesario que me pidas disculpas.