Custom template for sub-sub-categories

Instead of include(), use get_template_part()

https://developer.wordpress.org/reference/functions/get_template_part/

<?php
$post = $wp_query->post;
if (cat_is_ancestor_of( 42, $cat ) ) {
get_template_part( 'services', 'template' )
} else {
get_template_part( 'single', 'default' );
}
?>

If you create those files and use get_template_part(), then within those files you can set them up to display posts however you see fit. Take a look at the Underscores theme on github, the archive.php file has a good example of using get_template_part() within the loop –

https://github.com/Automattic/_s/blob/master/archive.php

Here is a link as well to one of the template_parts for Underscores to see how they set it up within that file –

https://github.com/Automattic/_s/blob/master/template-parts/content.php

Tom Mcfarlin explains this extremely well here –

https://code.tutsplus.com/articles/how-to-include-and-require-files-and-templates-in-wordpress–wp-26419

Response to your edits: Your single-{CPT-slug}.php templates should not cause any issues with this.