OK. The next thing to try is to add a small delay between each call of the send() method.
If, for example, a small buffer (somewhere) is overflowing because you are causing it to be fed too quickly, before it has a chance to clear, this might help as a trouble shooting measure. It is not very scientific but it could help isolate the problem.
If that does not bring anything then, by experiment, attempt to discover if it is a particular construct which is causing the problem, as you seem to have a mixture of different ways of filling the character arrays. A long shot would be to make the character array lengths multiples of 4 bytes in case there is an alignment problem.