Display posts from one network site on another

You are looping through the posts queried before your switch_to_blog() statement. Your code appears to be from a page template which is executed AFTER the main query has run.

To be clear, the main query is run before the template code is executed. Switching to another site after that does not update the query, therefore your loop is iterating through the original blog (#6).

Try something like this instead:

  switch_to_blog( 1 );
  // pull in posts from main blog
  $query = new WP_Query();

  if ( $query->have_posts() ) {
      while ( $query->have_posts() ) :
        $query->the_post();
        get_template_part( 'content/post' );
      endwhile;
   wp_reset_postdata();
  } else {
  // none were found
  }

  restore_current_blog();

EDIT: updated to use OP’s original loop and template part.
EDIT 2: clarified order of execution in the first few sentences.