Copying custom field value in to title

Try this:

add_action('init', 'replace_title_logic');

function replace_title_logic() {
  add_filter('wp_insert_post_data', 'replace_title_before_update', 20, 2);
  add_action('wp_insert_post', 'replace_title_after_save', 20, 2);
  add_filter('wp_insert_post_empty_content', 'allow_empty_content_for_listing', 20 , 2);      
}

function replace_title_before_update( $data, $postarr ) {
  if ( is_int($postarr['ID']) && ($data['post_type'] == 'listing') ) {
    $custom = get_post_meta($postarr['ID'], 'ref._nr.', true );
    if ( $custom && ( $custom != $data['post_title'] ) ) $data['post_title'] = $custom;
  }
  return $data;
}

function replace_title_after_save( $post_ID, $post ) {
  if ( $post->post_type != 'listing' )  return;
  $custom = get_post_meta($post_ID, 'ref._nr.', true );
  if ( $custom && ( $custom != $post->post_title ) && $post->post_status != 'trash') {
    remove_action('wp_insert_post', 'replace_title_after_save', 20, 2);
    remove_filter('wp_insert_post_data', 'replace_title_before_update', 20, 2);
    $postarr = ( array('ID' => $post_ID, 'post_title' => $custom) );
    wp_insert_post($postarr);
  }
}

function allow_empty_content_for_listing( $maybe_empty, $postarr ) {
  if ( $postarr['post_type'] == 'listing' ) return false;
}