Do you see the requests coming into your service on the remote end? Have you tried removing all code and just echoing the information to see if that works. At a high-level, there should be no reason that Jive would be able to call the health_url or register_url as long as the url's were resolvable.
Wish I had a better answer here, but with our requests, headers, logs and request/resposne payloads etc... this is literally a crap shoot to try and diagnose. =\
Thanks for your response Ryan Rutan. I ran the service diagnostics just some time back and without making any changes, it is now working with a 200 status code. Not sure why it was having hiccups yesterday.
It's really hard as a developer to figure out coz the documentation is very limited on most of the APIs which makes it more of a guessing game to get anything to work.