As the staff at Paypal told you, the problem is most probably on your side. The chance this is on Paypal's side is 0.00000000000000001%, as else it would be a wide spread issue.
Keep in mind that if your script fail due to a error, the web server will return a 200 OK http status code.
If you dont already do it, start logging php errors, and then the next time you have one failing, search the error log and you will most probably find the problem.
You can also add error reporting to any critical parts of your IPN script, i.e. database updates, etc. This is more tricky if you dont already have a built in system for error reporting and use it frequently.