Downloading from private directory corrupting some file types
We have finally solved the issue and in case it is of use will put the answer here.

Based on this php issue we realised the issue could be a closing php tag somewhere else on the site. 

In the end we found three small modules - one animated a set of banner images on the site; one made some api calls for a search feature; and another created some custom blocks from an external api call. 

Each of these had ?&gt; at the end of their .module files. Removing them fixed the problem.

Why this problem went on to affect all files served I do not know.