I would have a serious look at what ning.com offers & how it does it so well.
It basically allows you to create your own 'myspaces' (social networks) public & private..
It has many of the features you've just mentioned. And more.
http://www.ning.com