Is there an easy way to
1) make a network private to the public and then
2)let subscribers from the main blog ask to join the sub site blogs using their profile data from the main blog
3) and without having to fill out registration forms or enter passwords and log in information for each sub site blog that they want to become a member of
4) and let the admin of the sub blogs receive a notification email that a request is pending to be a subscriber
5)still let published custom posts show in network search results.
Isn't this wordpress multisite default behavior?
I don't think that multisite supports this right out of the box, but there are a half dozen membership plugins, one of which hopefully will do what you want. As for #5, I doubt it. If a site is private, then it will not show up in search results sitewide.
rfair404 is right: you'd need plugins for all of that.
Any suggestions on the plugin? I have tried a ton and haven't figured it out.
http://wordpress.org/extend/plugins/s2member/ perhaps? or http://wordpress.org/extend/plugins/members/
Making the network private is pretty easy, but it depends how you want to manage the users.