Your code does not check the return value of AS1_SendBlock or the out parameter grc.
With interrupt driven, buffered output. a loop like
for (;

{
AS1_SendBlock("HELLO THERE", 11, &grc);
}
sends in 99 % nothing, and in 1% (or less), the AS1_SendBlock just sends the H.
Basically the first few AS1_SendBlock calls fill the buffer, and once the buffer is full AS1_SendBlock just returns that it did not send anything. Once a byte got send, a subsequent AS1_SendBlock just sends out the first character, a 'H'.
Daniel