I'm not so sure about what is needed in php code, but here are some general mail-server tips. It is possible that some of your problem might lie in your header information or in your mail-server's configuration.
When I used our local mailserver to send messages to mailing lists, I discovered that people were not receiving mail on certain domains. When I looked through the mail server logs (hMailServer) I saw that the server on the recipient was rejecting the messages.
The problem turned out to be that my domain was missing a reverse ip lookup registration in the ISP's domain settings.
I believe this can also be the source of some mail recipients getting your messages tagged with spam notices and warnings (as your case may be).
Another point to consider is that you have a return-path address specified in your headers - this is not the same as the reply address - it is a setting used by mail-servers when they talk to each other. Check out this little troubleshooting guide.