UTF-8 is not Unicode.
.NET is mostly using Unicode if the encoding is not explicitly specified but the forms themselves are not saved in Unicode.
Socket communication and pretty much everything else Internet is still using extended ASCII (the 0-255 range)
:-D

When I am sending 대한민국, I am not sending 대한민국 but the bytes EB,8C,80,ED,95,9C,EB,AF,BC,EA,B5,AD. Just like you are doing it in your original code. I think it is great to use what's easiest but only if you know why and how it is easier. Otherwise when your users say they are getting squares and question marks you won't know if the GetBytes' encoding was wrong, they don't have an adequate font, the send went wrong etc. etc.

I now find the basics to be really simple, the only thing I had to read back then:
http://www.joelonsoftware.com/articles/Unicode.html