WordPress Multisite: Have the same header and footer of main-blog on all sub-blogs

You could use the switch_to_blog() function

Switches the active blog until the user calls the
restore_current_blog() function. This function is useful if you need
to pull posts, or other information, from other blogs, you can then
switch back after using restore_current_blog(). Using this function
will not load plugins that only run on the blog you switch to.

So you can edit your theme to always pull some header and footer content from the main blog, but still keep the inner content of the sub blogs.

In you theme’s header.php and footer.php files ( and maybe some other template files** ), put switch_to_blog($id_of_main_blog) before hooks/functions that grab the site navigation and place restore_current_blog() after.

**You will need to tweak the exact placements depending on the theme.