Calling get_theme_mod() of an WP_Customize_Image_Control() returns an Array, how do I correctly return the image src for my custom theme?

Short answer:

Pasting in your code, setting the images. I was able to get the string with

<img src="https://wordpress.stackexchange.com/questions/304906/<?php echo $colorlogoURL["image_upload_test'] ?>">

Long answer:

Having an array on each unique setting (nscoctwentyseventeen_*_logo[image_upload_test]) doesn’t make sense to me for this simple use. The functionality for it exists in core, so there’s obviously a reason for it, however I’m not sure why it’s in your code, and I think that caused a lot of your confusion. I believe for longevity, and this use, it’s best to make each logo its own setting, without arrays.

Cleaning the code and shortening the namespace makes it a little easier to read. edit_theme_options is the default capability so it can be removed. and since all three logos are the exact same (except the name), you can shorten the code, and prevent repeating, by making a loop:

add_action( 'customize_register', function ( $wp_customize ) {
    $wp_customize->add_section(
        'nscocts_other_logos',
        [
            'title' => __( 'Other Logos', 'nscoctwentyseventeen' ),
            'priority' => 6,
            'description' => __('Add other logos here', 'nscoctwentyseventeen'),
        ]
    );
    foreach (['Punchout','Stamp','Color'] as $name) {
        $wp_customize->add_setting("nscocts_{$name}_logo", [ 'type' => 'theme_mod' ]);
        $wp_customize->add_control(
            new WP_Customize_Image_Control(
                $wp_customize,
                "nscocts_{$name}_logo",
                [
                    'width' => 250,
                    'height' => 250,
                    'flex-width' => true,
                    'selector' => ".{$name}_logo",
                    'label' => __("Upload {$name} Logo", 'nscoctwentyseventeen'),
                    'section' => 'nscocts_other_logos',
                    'settings' => "nscocts_{$name}_logo",
                ]
            )
        );
    }
});

Then in your theme to retrieve, you could do

echo get_theme_mod( "nscocts_Punchout_logo" );
echo get_theme_mod( "nscocts_Stamp_logo" );
echo get_theme_mod( "nscocts_Color_logo" );

Note that WP_Customize_Image_Control stores the string src path of the image. I’ve personally have only had issues with it – so I instead use WP_Customize_Media_Control to store the select item as an ID ( then use wp_get_attachment_image_src() to retrieve the src of the image).

Hope that helps.