So some emails go through? Do you have access to your email server SMTP error log? You could probably find out more about why the errors occur in sending emails outside of your domain by looking at the error logs.
You could also add debug code to the mail.php include file to report errors to the page. If there is an error returned from the smtp server it can be displayed on the page by adding a die() statement with the mail object after it is sent.