It sounds like you have a typecasting problem. First, why do some of your bytes have a sign? I assume they are I8. Strings are based on U8 because they are just a series of ASCII characters vs. values. The ASCII character table goes from 0 to 255.
What happens on the other end of the VISA communication string?
One thing you could do is to typecast your bytes to a U8. Though I think the coercion dot of an I8 byte array going into the byte array to string is doing this automatically.