Is_single not working properly in genesis

Please put your action add_action( 'genesis_after_header', 'gp_page_header'); in if condition not whole code.

if(is_single()){
  add_action( 'genesis_after_header', 'gp_page_header');
}

Your updated code:

if(is_single()) {
  add_action( 'genesis_after_header', 'gp_page_header');
}

function gp_page_header(){
    $image = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'single-post-thumbnail' );
    ?>
    <div class="post-hero" style="background-repeat: no-repeat;background-size:cover;background-image: -webkit-radial-gradient(left top, circle cover, rgba(100, 66, 255, 0.9) 15%, rgba(0, 108, 255, 0.9) 50%, rgba(12, 180, 206, 0.9) 85%), url('<?php echo $image[0]; ?>')">
        <div class="wrap">
        <?php
        the_title( '<h1 class="entry-title" itemprop="headline">', '</h1>' ); 
        genesis_post_info();
        ?>

        </div>
    </div>
    <?php
 }