Update: turns out my solution for this was working all along. I just missed checking the required option in the WPCVS plugin configuration [Show images].
To anyone interested in this, here’s the code (might need some tuning):
add_filter( 'wpclv_term_image', 'wpclv_term_photo', 99, 2 );
function wpclv_term_photo( $term_image, $term ) {
$image = get_term_meta( $term->term_id, 'wpcvs_image', true ) ?: '';
if ( ! empty( $image ) ) {
return '<img src="' . esc_url( wp_get_attachment_thumb_url( $image ) ) . '"/>';
}
return $term_image;
}