OK. More research seems to indicate that single.php isn’t a page template in the sense of the is_page_template() function. Maybe try just is_single():
<?php if( is_page_template('page-templates/child-menu.php') || is_single() ): ?>
If that doesn’t work you might try modifying the code block to include a separate section for posts. Since single.php isn’t a “page” directly related to the menu pages, we can try building the menu manually. The following change should build the child menu based on the designated parent page ID, so you’d need to change $parent = 99 to the page ID for your menu parent page. Again, I haven’t tested this; it’s just an idea I’m tossing out there.
<?php if( is_page_template('page-templates/child-menu.php') ): ?>
<ul class="child-menu group">
<?php wp_list_pages('title_li=&sort_column=menu_order&depth=3'); ?>
</ul>
<!-- adding new section to build child menu for post page -->
<?php elseif( is_single() ): ?>
<?php
// use wp_list_pages to display parent and all child pages all generations (a tree with parent)
$parent = 99;
$args=array(
'child_of' => $parent
);
$pages = get_pages($args);
if ($pages) {
$pageids = array();
foreach ($pages as $page) {
$pageids[]= $page->ID;
}
$args=array(
'title_li' => '',
'sort_column' => 'menu_order',
'depth' => 3,
'include' => $parent . ',' . implode(",", $pageids)
);
wp_list_pages($args);
}
?>
<?php endif; ?>
Here is the Codex reference for the above code.