Well, we encountered a bit similar problem before, although it's rare problem...
Ok, the situation is... (you probably already know the details - it's for the guys who may read it later)
The hosting has the Nginx/Apache pair, where the Nginx kinda sits in front of the Apache. Nginx is blazing fast for the static content, so if request goes for a picture, or CSS file, or something like that, the Nginx spits it right back. If it's complicated request, requires, say, to run PHP script, Nginx passes it to smart but slower Apache. Such a configuration is used on the systems to withstand really heavy load.
The GRA4 software uses HTTP 1.0. Majority of web servers use 1.1 (we keep 1.0 to maintain compatibility even with older systems, presuming the modern systems must understand 1.0 as well ).
The 1.1 and 1.0 have some differences, but the one we are interested in right now: when 1.0 transmits data, it sends a HTTP header with the data length in it. The 1.1 uses "chunked" protocol. The data literally is sent by chunks prefixed with chunk length.
For some reasons Nginx has some setting, telling it to use HTTP 1.1 even when the client insists on 1.0, so for Nginx data looks corrupted.
I was about to tell you the bad news that the situation in unresolvable until we implement HTTP 1.1 (we have such a plans for later) but you have really-really skilled guys on the techsupport of your hosting. Congratulations ! =)