Why is my archive page looping through all but one post?

As @Jacob Peattie says, pagination is what’s causing this, and probably what you want to add if you will have more posts over time.

If you want you can disable pagination for archive pages easily with this in your functions.php:

    function wpse_disable_pagination( $query ) {
        if (is_archive()) {
            $query->set('nopaging', 1 );
        }
    }

    add_action( 'pre_get_posts', 'wpse_disable_pagination' );