For create the links to your child sites use this
function elenco_sotto_siti(){
global $wpdb;
$blogs = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->blogs WHERE public="1" AND archived='0' AND mature="0" AND spam='0' AND deleted='0' ORDER BY blog_id "),ARRAY_A );
return $blogs;
}
For question 2 and 3, i use the option framework plugin, and i grab the description and other setting with
switch_to_blog($site->blog_id);
$immagine= of_get_option('example_uploader');
restore_current_blog();
If you create an option fot the address and grab it into your main site you can create the map
The option framework plugin is at this URL http://wptheming.com/options-framework-plugin/