Sets post_parent in custom post type posts automatically based on cpt->page name

You have a few issues in your function. first, $data contains the post type, so we look there. your if statement won’t work like that, you have to check conditions individually. and to find the matching page, just query by title for your page with WP_Query:

function find_parent_for_cpt( $data ) {
    if ( $data['post_type'] != 'post' && $data['post_type'] != 'page' ):
        $args = array(
            'name' => $data['post_type'],
            'post_type' => array( 'page' )
        );
        $match = new WP_Query( $args );
        if( $match->post_count == 1 )
            $data[ 'post_parent' ] = $match->post->ID;
    endif;
    return $data;
}
add_filter( 'wp_insert_post_data' , 'find_parent_for_cpt' , '99', 2 );

also note you have to return the post data whether or not you modify it. another thing you may have issues with is that there are other post types types beside post and page that are not your custom types, where I assume this action gets fired. it may be best to test explicitly for your custom types to decide whether or not to assign parent.