I developed a state-driven serial port programming language in C# and it really makes it easy to communicate with the serial port.
Would you please try it ? It is freely available on sourceforge. If you have any questions, please feel free to ask.
You can also redistribute the serial port driver as part of your .NET application. For more information about how to do it, please see this.