I've been writing C code for 30 years. I've used, in that time, exactly one goto statement, in a parser. Your code is unnecessarily riddled with them. A simple do/while statement with if blocks would eliminate the need for all of them.
Some functions would be useful, too.
You need to explain why you are throwing away random amounts of unread data (Serial.flush()) or why it is necessary at that point to block until the output buffer is empty, depending on which version of the IDE you are using. If you can't, it's time to employ the delete key.
You seem to have forgotten to include the output that you are seeing.
And, you've forgotten to mention whether you can send data to any server other than pachube.