different sidebars depending on template (is_page_template is not working)

One possiblilty:

Keep the new code in sidebar.php in your child theme.

In blog-page.php, change the line get_sidebar('blog-sidebar'); to do_action( 'storefront_sidebar' ); (as in an original page.php).

Tested in a blog-page.php page template without custom query and loop, and also no woocommerce installed, this should work.

If not, the custom query and loop might interfere. in this case, please post the full code of blog-page.php.

ALTERNATIVELY, keep your code in blog-page.php, and keep the original (parent theme) code in sidebar.php.
Create a new file sidebar-blog-sidebar.php based on following code:

if ( ! is_active_sidebar( 'blog-sidebar' ) ) {
    return;
}
?>

<div id="secondary" class="widget-area" role="complementary">
    <?php dynamic_sidebar( 'blog-sidebar' ); ?>
</div><!-- #secondary -->