Archive-custome_post.php template not working

Your pre_get_posts filter is incorrect. You are altering more queries than I think you think you are. The “main” query isn’t just the primary index. You are adding (or attempting to add) all of those post types to every page, basically,– the author archives, the categories, everything.

Try this:

add_action( 'pre_get_posts', 'add_my_post_types_to_query' );

function add_my_post_types_to_query( $query ) {
    if ( 
      !is_admin() 
      && $query->is_main_query() 
      && 'my_recipes' != $query->get('post_type')
    ) {
        $query->set( 'post_type', array( 'post', 'page', 'my_recipes' ) );
    }
}

Your archive-my_recipes.php should work now. I don’t know if that the correct solution though. My suspicion is that you want is_home or is_front_page so that you only adding the additional post types to a particular index. Something like:

function add_my_post_types_to_query( $query ) {
    if ( 
      $query->is_home() 
      && $query->is_main_query()
    ) {
        $query->set( 'post_type', array( 'post', 'page', 'my_recipes' ) );
    }
}