Listing titles and custom fields of entries within subcategories

If I understood your problem correctly within the $termchildren loop, you’ll need to add a get_posts() tax_query that will find all posts that have the current loops term. I think somthing similar to the following will work:

if ( have_posts() ) :

    echo "<h2>Subcategories</h2>";

    // if you're on a single post, it will return the post object
    // if you're on a page, it will return the page object
    // if you're on an archive page, it will return the post type object
    // if you're on a category archive, it will return the category object
    // if you're on an author archive, it will return the author object
    $term = get_queried_object();

    echo "Current \$term is: <pre>";
    print_r($term);
    echo "</pre>";


    $termchildren = get_term_children( $term->term_id, $term->taxonomy );

    echo '<ul>';
    foreach ( $termchildren as $child ) {
        $childTerm = get_term_by('id', $child, $term->taxonomy );
        echo '<li><a href="' . get_term_link( $childTerm, $term->taxonomy ) . '">' . $childTerm->name . '</a>';

        // posts with this term         
        $childTermPosts = get_posts(array(
          'post_type' => 'post', // WTV your post_type is for Downloads tax
          'numberposts' => -1,
          'tax_query' => array(
            array(
              'taxonomy' => $term->name,
              'field' => 'id',
              'terms' => $child,
              'include_children' => true
            )
          )
        ));

        // then loops the posts
        if (count($childTermPosts) > 0) {
            echo "<ul>"

            foreach ($childTermPosts as $childTermPost)
                echo "<li><a href="".get_permalink( $childTermPost->ID )."">{$childTermPost->post_title}</a></li>";

            echo "</ul>"
        }

        echo "</li>";

    } //end foreach

    echo '</ul>';   

    //wp_link_pages(...);
    //the_posts_navigation(..);
else :

    echo "get_template_part(template-parts/content) here";
    //get_template_part( 'template-parts/content', 'none' );

endif;

I’ve noted in comments that get_queried_object() returns a lot depending on your current template file.

The above is not tested, but hopefully it gives an idea of what can be done. I commented and removed things because sometimes to narrow down your problem or even what you’re after is to minimize the code, and having the code spit-out current variables – adding all the html and pagination etc last.