I know this is an old thread but the problem still exists. I think this is a bug. Default queries such as nav should not be affected in making custom search page. Anyways, this is how I fixed it:
function fix_nav_menu_in_search($query)
{
if (is_search()) {
$query->set('post_type', ['your_cpt', 'nav_menu_item']);
}
return $query;
}
add_filter('pre_get_posts', 'fix_nav_menu_in_search');