Huh, storage or RAM problems would be evident in your file tests (and elsewhere). Can you visit websites normally? Stream YouTube etc.? It would be very strange for a broken network device to corrupt files.
Also, since you didn't mention where the downloads are coming from... No chance of corruption at the source?
The input/output error makes me think disk issue (since it should copy corrupt files just fine, it's just data) but that should also be triggered by copying from a separate device. A more thorough disk check may be in order, like a badblock run or something.