You can use output buffering to get the template output and return it in place of the emptied shortcode content:
if ($pos !== false)
ob_start;
get_template_part('content-gallery.php');
$contentgallery = ob_get_contents();
ob_end_clean();
return substr_replace( $content, $contentgallery, $pos, strlen($shortcode[0]) );`
}
EDIT It might make it easier to just replace the gallery shortcode?
remove_shortcode('gallery');
add_shortcode('gallery','my_content_gallery');
function my_content_gallery() {
ob_start;
get_template_part('content-gallery.php');
$contentgallery = ob_get_contents();
ob_end_clean();
return $contentgallery;
}