Loading a plugin’s js file from functions.php

It feels slightly fragile, but you can probably just do:

wp_scripts()->add_data( 'gpvb-admin-scripts', 'group', 1 );

in a low-priority admin_enqueue_scripts hook, since that’s what wp_register_script does with the $is_footer flag. However this risks a future version of WordPress changing how this is saved internally (although it’s been stable for 5+ years).

Alternatively you could query for the existing entry and use the dependency properties to overwrite the existing dependency entry using wp_register_script again:

$existing_script = wp_scripts()->query( 'gpvb-admin-scripts' );
if ( $existing_script ) {
    // Overwrite existing registration
    wp_deregister_script( $existing_script->handle ); 
    wp_register_script( $existing_script->handle,
                        $existing_script->src,
                        $existing_script->deps,
                        $existing_script->ver,
                        true );
}

ditto in a low-priority admin_enqueue_scripts hook.