Code that displays images – images get shown multiple times

Something like this might work:

<?php 
$cat_id = get_query_var('cat');
$catlist = get_categories('hide_empty=0&child_of=" . $cat_id);
echo "<ul>";

foreach($catlist as $categories_item)
{
echo "<h1><a href="' . get_category_link( $categories_item->term_id ) . '" title="' . sprintf( __( "View all products in %s" ), $categories_item->name ) . '" ' . '>' . $categories_item->name.'</a> </h1> ';
    echo '<p>'. $categories_item->description;

    $terms = apply_filters( 'taxonomy-images-get-terms', '' );
    if ( ! empty( $terms ) ) {

      foreach( (array) $terms as $term ) {
        if($term->term_id == $categories_item->term_id) {
           print '<a href="' . esc_url( get_term_link( $term, $term->taxonomy ) ) . '">' . wp_get_attachment_image( $term->image_id, 'detail' );

        }
    }

}
    echo '</p>';
}
echo "</ul>";
}
?>

The point of the code is to only display the image if the term id of the image matches that of the category. Not the most efficient solution, but I am not clued up on the specific plugin you are using and what options you have for getting the image of a specific term.