Brian,
The app will disconnect if it doesn't parse a valid data stream for 5 seconds, so 10Hz is more than enough.
I looked over your sketch (finally). Sorry it took so long - I was neck deep in fixing my own firmware problems for almost a month.
Now, I have a wild idea: what is the chance that Jimmy's UART-to-BT transceiver is set up to work at 115200 BAUD. If it's not and Arduino tries to send the data at that rate, the app will be getting garbage.
I'll send you some feedback in the email too. There are a few things that can be optimized.
Regards
Yuriy