Change post template the proper way

I think it’s generally better to include the CMB2 plugin. As far as your question, there are a lot of ways to go about this, but I think your way is a solid one. I would make a couple changes. I’d update your option values to be the name of your template-parts:

'options' => array(
    'single-video' => 'Single Video',
),

Then I would add a helper function to your theme’s functions.php:

function idver_get_post_template_part( $post_id ) {
    $template = get_post_meta( $post_id, 'temp_ver', 1 );
    if ( ! $template ) {
        $template="default"; // Whatever your fallback template part is
    }

    get_template_part( $template ); 
}

(obviously, update ‘default’ to whatever your default/fallback template part should be. If NO default, that helper function should be updated a bit)

Then in your single.php, just call:

idver_get_post_template_part( get_the_ID() );