Ok, one last test run with rate limited wget on a small pnd:
$ wget --server-response --ignore-length --content-disposition --limit-rate=10k http://repo.openpandora.org/includes/download.php?app=scummvm.djwillis.0001
--2013-06-24 22:43:36-- http://repo.openpandora.org/includes/download.php?app=scummvm.djwillis.0001
Resolving repo.openpandora.org... 5.9.50.149
Connecting to repo.openpandora.org|5.9.50.149|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Date: Mon, 24 Jun 2013 20:45:22 GMT
Server: Apache
X-Powered-By: PHP/5.4.4-14+deb7u2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Accept-Ranges: bytes
Content-Description: File Transfer;
Content-Disposition: attachment; filename="scummvm-op.pnd";
Content-Transfer-Encoding: binary;
Cache-Control: must-revalidate, post-check=0, pre-check=0
Set-Cookie: PHPSESSID=maae3q8jsg0a1t72hpcjk3chn2; path=/
Content-Range: bytes 0-10254803/10254804
Content-Length: 10254804
Connection: close
Content-Type: application/x-pnd;
Length: 10254804 (9.8M) [application/x-pnd]
--2013-06-24 22:43:37-- http://repo.openpandora.org/includes/download.php?app=scummvm.djwillis.0001
Connecting to repo.openpandora.org|5.9.50.149|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 200 OK
Date: Mon, 24 Jun 2013 20:45:23 GMT
Server: Apache
X-Powered-By: PHP/5.4.4-14+deb7u2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Accept-Ranges: bytes
Content-Description: File Transfer;
Content-Disposition: attachment; filename="scummvm-op.pnd";
Content-Transfer-Encoding: binary;
Cache-Control: must-revalidate, post-check=0, pre-check=0
Content-Range: bytes 0-10254803/10254804
Content-Length: 10254804
Connection: close
Content-Type: application/x-pnd;
Length: 10254804 (9.8M) [application/x-pnd]
Saving to: `scummvm-op.pnd'
46% [========================================> ] 4,727,354 10.0K/s in 7m 42s
2013-06-24 22:51:19 (10.0 KB/s) - Connection closed at byte 4727354. Retrying.
--2013-06-24 22:51:20-- (try: 2) http://repo.openpandora.org/includes/download.php?app=scummvm.djwillis.0001
Connecting to repo.openpandora.org|5.9.50.149|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 206 Partial Content
Date: Mon, 24 Jun 2013 20:53:05 GMT
Server: Apache
X-Powered-By: PHP/5.4.4-14+deb7u2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Accept-Ranges: bytes
Content-Description: File Transfer;
Content-Disposition: attachment; filename="scummvm-op.pnd";
Content-Transfer-Encoding: binary;
Cache-Control: must-revalidate, post-check=0, pre-check=0
Content-Range: bytes 4727354-10254803/10254804
Content-Length: 5527450
Connection: close
Content-Type: application/x-pnd;
Length: 10254804 (9.8M), 5527450 (5.3M) remaining [application/x-pnd]
Saving to: `scummvm-op.pnd'
94% [+++++++++++++++++++++++++++++++++++++++++===========================================> ] 9,667,726 10.0K/s in 8m 2s
2013-06-24 22:59:23 (10.0 KB/s) - Connection closed at byte 9667726. Retrying.
--2013-06-24 22:59:25-- (try: 3) http://repo.openpandora.org/includes/download.php?app=scummvm.djwillis.0001
Connecting to repo.openpandora.org|5.9.50.149|:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 206 Partial Content
Date: Mon, 24 Jun 2013 21:01:10 GMT
Server: Apache
X-Powered-By: PHP/5.4.4-14+deb7u2
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Accept-Ranges: bytes
Content-Description: File Transfer;
Content-Disposition: attachment; filename="scummvm-op.pnd";
Content-Transfer-Encoding: binary;
Cache-Control: must-revalidate, post-check=0, pre-check=0
Content-Range: bytes 9667726-10254803/10254804
Content-Length: 587078
Connection: close
Content-Type: application/x-pnd;
Length: 10254804 (9.8M), 587078 (573K) remaining [application/x-pnd]
Saving to: `scummvm-op.pnd'
100%[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=====>] 10,254,804 10.1K/s in 57s
2013-06-24 23:00:22 (10.0 KB/s) - `scummvm-op.pnd' saved [10254804/10254804]
The first error message (like the one quoted above) ends exactly at offset 4,727,353. A second message (identical except for a different status code: 206 partial content) ending at offset 9,667,725. That means that the error appears at the end of each downloaded chunk, sending the error message instead of actual content. I don't know enough HTTP to determine whether this appending of a clear text server error mesage to actual preceding content is allowed by the spec, bt it confuses the hell out of at least wget and PNDManager.
It appears that the current firefox pnd does somehow detect the beginning of the error message, since it is not saved to the partial pnd. This might be more correct, but doesn't help, since it does not retry after these errors and therefore doesn't download the complete file (and does not indicate to the user that there was an error).
But this doesn't help much with finding the culprit, since the error clearly happens on the server.
Searching the error messages shos that repo.openpandora.org is not the only one suffering from this phenomenon. It might be related to broken .htaccess files, but I'm not sure these are relevant here (and I already mentioned that I don't know anything about Apache/PHP
I hope this help to reproduce and fix the problem.