Get the_content surrounded by instead of

First you should use get_the_content() to assign the content to a variable (instead of the_content() which is meant to display it instead of returning it).

Then you will want to apply filters hooked to 'the_content' just like the_content() does (see the source).

Here is a revised version of your original code:

$thisPagesContent = get_the_content();
$thisPagesContent = apply_filters( 'the_content', $thisPagesContent );
$thisPagesContent = str_replace( ']]>', ']]>', $thisPagesContent );
echo '<h1>' . $thisPagesContent . '</h1>';

An alternative way to approach it would be to create a filter in the functions.php file of your theme or child theme or in a plugin and hook it to 'the_content', with a conditional so that it only applies to the target page.
On said page, you would then just call the_content() as normal and the filter would apply. This approach would more neatly separate content manipulation and presentation.

Example:

function wpst_304021_wrap_content_in_h1( $content ) {

    if ( is_page( '123' ) ) { // Assuming your "target" page's ID is '123', you can also use the page's title or slug or another conditional altogether.
        return '<h1>' . $content . '</h1>';
    }

   return $content;
}
add_filter('the_content', 'wpst_304021_wrap_content_in_h1');

As an aside, I do hope you have a specific use case with a good reason do to this, as wrapping the whole content of a post in a heading tag would be a terrible idea in most cases.