Unfortunately it is not possible to modify the field to use the name instead of ID and to keep the AJAX functionality.
You could use a standard select field, and pass the post data in the desired format to this – although you will loose the AJAX functionality.
The only way to achieve 100% of what you want is to create a custom CMB Field Type.
Unfortunately the Post_Select_Field and Select_Field classes are not the easiest to work with – the AJAX stuff in particular. I am currently working on a major overhaul of this and it should all be a bit clearer once this is released. Likeley to be a couple of weeks at least.
Update to include some code
This is how you would do it with a standard select field:
add_filter( 'cmb_meta_boxes', 'cmb_sample_metaboxes' );
function cmb_sample_metaboxes( array $meta_boxes ) {
$post_select_options = array();
$my_query = new WP_Query( 'post_type=post&posts_per_page=100' );
while ( $my_query->have_posts() ) {
$my_query->the_post();
global $post;
$post_select_options[$post->post_name] = get_the_title( get_the_id() );
}
wp_reset_postdata();
$meta_boxes[] = array(
'title' => 'CMB Test - all fields',
'pages' => 'post',
'fields' => array(
array( 'id' => 'field-ID', 'name' => 'Post Select field', 'type' => 'select', 'options' => $post_select_options, 'allow_none' => true ),
)
);
return $meta_boxes;
}