The problem is that your query changes are added to every query and you need to narrow that down.
The first thing to check is that it is the main query done by WP
if (!$query->is_main_query()) {
return;
}
The next thing you have to do is make sure that the query is being done only for your CPT
if (!isset($query->query_vars) ||
!isset($query->query_vars['post_type']) ||
$query->query_vars['post_type'] != 'YOUR POST TYPE') {
return;
}