How can I prevent the Search Results Page from changing title?

You can replace:

<h1 class="site-title"><?php echo get_the_title($post->ID); ?></h1>

With:

<h1 class="site-title"><?php _e( 'Search results for', 'theme-textdomain' ).': ' . get_search_query(); ?></h1>

But obviously only in search pages. I suggest to move the <h1> element to each template you may need instead of include it in the general header.php template. It is up to you but if you use header.php to dipslay the <h1>, you will need some kind of conditionals, not only in search results, but also in categories archives, date archives, etc.

For example:

<?php if( is_search() ) { ?>
    <h1 class="site-title"><?php _e( 'Search results for', 'theme-textdomain' ).': ' . get_search_query(); ?></h1>
<?php } else { ?>
    <h1 class="site-title"><?php echo get_the_title($post->ID); ?></h1>
<?php } ?>