Standard debugging techniques apply (we can't help you debug your code / infrastructure, etc., etc.).
Start by seeing if your address is accessible from the outside world.
Next test is PayPal can access your site: https://developer.paypal.com/developer/ipnSimulator/
Are you using TLS? Are you using certificates that are signed by a CA (i.e. not self-signed)?
Add breakpoints to your code. See what succeeds and what fails and dig in from there.