The logo is being requested over http rather than https.
I assume this is the code affecting it:
<?php echo esc_url( home_url( '/' ) ); ?>
any advice would be appreciated
Here is more info on the code you are referring to:
https://codex.wordpress.org/Function_Reference/home_url
"https" if is_ssl() and "http" otherwise. If the $scheme argument is "http" or "https" the is_ssl() check is overridden.
The function home_url
outputs the home url for your current site.
If you're using a theme with a custom options panel, your theme might be saving the logo option settings with the protocol hard-coded.
Your best bet is to re-select the image in your theme's option panel or through the Wordpress Customizer and save it again.