Is there a reason you are closing the port after every send?
In my application involving serial communication I leave the port open between communications. I send thousands and thousands of communications this way without error using the MsCOMM control. I don't know if this will work for you but figured I would pass my experience on.
Brandon Harker
Sebae Data Solutions