How to copy a custom field from the user’s CPT to the user’s normal posts

You can use the wp_insert_post action for when a user creates/saves a “normal” post, then find their custom post and copy over any fields you need:

function wpse_203349_copy_post_meta( $post_ID, $post, $update ) {
    if ( $post->post_type !== 'post' )
        return;

    $users_custom_posts = get_posts(
        array(
            'posts_per_page' => 1,
            'post_author' => $post->post_author,
            'post_type' => 'custom_post_type',
        )
    );

    if ( ! $users_custom_posts )
        return; // This author doesn't currently have any custom posts

    $fields = get_post_custom( $users_custom_posts[0]->ID );

    foreach ( $fields as $field => $value ) {
        if ( $field[0] !== '_' && ( empty( $value[0] ) || ! is_array( $value[0] ) ) ) // Ignore "private" fields (prefixed with an underscore or serialized data)
            add_post_meta( $post_ID, $field, empty( $value[0] ) ? '' : $value[0], true /* Unique */ ); // If the field already exists, it won't be overwritten, unlike update_post_meta()
    }
}

add_action( 'wp_insert_post', 'wpse_203349_copy_post_meta', 10, 3 );