Протокол IRC требует пары CR / LF, в то время как поведение по умолчанию для StreamWriter - это просто перевод строки. Вы должны создать свой StreamWriter следующим образом:
writer = new StreamWriter(stream) { NewLine = "\r\n", AutoFlush = true };
Кроме того, вам, вероятно, следует указать имя пользователя с помощью команды USER перед присоединением к каналу, хотя я не уверен, что это совершенно необходимо:
writer.WriteLine("USER username +mode * :Real Name");