Get post object in shortcode function

You need to reassign the $post yourself. See the WordPress Codex that setup_postdata won’t do it for you. Try this:

global $post;

$section_id = 16;
$post = get_post( $section_id );
setup_postdata( $post ); 

the_content();