Updating page template pragmatically

Use the body_class filter to change the <body> CSS classes.

You can copy the same logic into your hooked function (like below), or make it neater by copying the logic into another new function and make this function return a boolean (and then use that new function with the body_class filter and within your template_redirect filter.

add_filter( 'body_class', function($body_classes){
    global $post;

    $meta = get_post_meta( $post->ID, 'designblocks-product-template', true );

    if ( ! $meta ) {
        return $body_classes;
    }

    $get_template = get_post_meta( $meta, '_wp_page_template', true );

    if ( $get_template ) {
        $body_classes[] = 'your-custom-classes';
    }

    return $body_classes;
});

Though, if I understood correctly what it is you’re trying to do, then you’re making your life unnecessarily difficult trying to replicate WP’s native page template functionality and related things. Instead, just create a file in your theme called single-{post-type-name}.php and use this instead of assigning a page template. The <body> will be given a class of single-{post-type-name}.