Seems I have an answer – it was how the SQL statement was setup.
$where .= " OR (( $wpdb->postmeta.meta_key = '$meta_key' AND (UPPER($wpdb->postmeta.meta_value) LIKE '%$meta_value%') ))";
Now is the field has the string “Whistler Bike Park, Canada” but the user only searches for “Whistler”, I get the post/s returned that I expect.