Custom permalink structure for remote content pages

I think your problem has several solutions. If you don’t want to have one entry in WP database for each remote item, a possible solution could be to have a page with property slug and add a rewrite rule to get the ID number:

add_action( 'init', 'cyb_property_rewrite_rule' );
function cyb_property_rewrite_rule() {
    add_rewrite_rule( '^property/([0-9]{1,})/?$', 'index.php?pagename=$matches[1]&remote_ID=$matches[2]', 'top' );
}
//Add remote_ID to vars pool to be recognized by WordPress
add_filter('query_vars', 'cyb_add_query_vars');
function cyb_add_query_vars( $vars) {
    $vars[] = "remote_ID";
    return $vars;
}

Now, the ID of the item you want to retrieve is stored in remote_ID query var that you can get through get_query_var:

$item_ID = get_query_var('remote_ID');

You could create a page template for that page and, in the content, you cuould get the remote item:

<?php
/*
Template Name: Property Page Template
*/
get_header();
?>

<div id="content">
    <?php
    $remote_item = cyb_get_the_property();
    ?>
</div>

<?php
get_footer();
?>

And in the cyb_get_the_property() you can fetch the data:

function cyb_get_the_property() {
    $item_ID = get_query_var('remote_ID');
    //Itegrate with the remote CMR API
    $item_data="";
    return $item_data;
}