Using jquery migrate for plugins incompatible with jquery 1.10.2

You have a syntax error in your wp_register_script() call:

wp_register_script('curtain-instance', get_stylesheet_directory_uri().'/curtain-instance.min.js', array('curtain','jquery','jquery-migrate'), true );

You’re missing the version parameter:

wp_register_script(
    // Handle
    'curtain-instance', 
    // Path
    get_stylesheet_directory_uri().'/curtain-instance.min.js', 
    // Dependencies
    array('curtain','jquery','jquery-migrate'), 
    // Version
    // In footer?
    true 
);

Try adding that parameter:

wp_register_script(
    // Handle
    'curtain-instance', 
    // Path
    get_stylesheet_directory_uri().'/curtain-instance.min.js', 
    // Dependencies
    array('curtain','jquery','jquery-migrate'), 
    // Version
    '1.0',
    // In footer?
    true 
);

Two other things:

  1. Be careful about stylesheet directory vs template directory. Unless you’re working with a Child Theme, you need to use get_template_directory_uri() rather than get_stylesheet_directory_uri().
  2. You can simplify things by chaining your dependencies, and then only enqueueing the last in the chain:

    add_action(‘wp_enqueue_scripts’, ‘tf_load_custom_scripts’);

    function tf_load_custom_scripts() {

    wp_register_script( 'curtain', 
        get_template_directory_uri().'/curtain.min.js', 
        array( 'jquery', 'jquery-migrate' ), 
        2.0 
    ); 
    wp_register_script(
        'curtain-instance', 
        get_template_directory_uri().'/curtain-instance.min.js', 
        array( 'curtain' ), 
        '1.0',
        true 
    ); 
    
    if ( is_front_page() ) {
        wp_enqueue_script('curtain-instance');
    }
    
    
    wp_enqueue_script(
        'custom_script', 
        get_template_directory_uri().'/script.min.js', 
        array( 'jquery' ), 
        1.0, 
        true 
    );
    

    }

And finally, note that when WordPress registers jQuery, it defines jquery-migrate as a dependency:

$scripts->add( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ), '1.10.2' );

So, try removing the jquery-migrate dependency:

add_action('wp_enqueue_scripts', 'tf_load_custom_scripts');

function tf_load_custom_scripts() {

    wp_register_script( 'curtain', 
        get_template_directory_uri().'/curtain.min.js', 
        array( 'jquery' ), 
        2.0 
    ); 
    wp_register_script(
        'curtain-instance', 
        get_template_directory_uri().'/curtain-instance.min.js', 
        array( 'curtain' ), 
        '1.0',
        true 
    ); 

    if ( is_front_page() ) {
        wp_enqueue_script('curtain-instance');
    }


    wp_enqueue_script(
        'custom_script', 
        get_template_directory_uri().'/script.min.js', 
        array( 'jquery' ), 
        1.0, 
        true 
    );

}