I don't know why but when you do the next thing you will never get the same as the original byte array:
var b = new byte[] {252, 2, 56, 8, 9};
var g = System.Text.Encoding.ASCII.GetChars(b);
var f = System.Text.Encoding.ASCII.GetBytes(g);
If you will run this code you will see that b != f, Why?! Is there any way to convert bytes to chars and then back to bytes and get the same as the original byte array?