I suppose I could wrap it all up in a custom element using variables for the section title, then use css to hide the original location, which I guess I’ll do. I wasn’t sure if there was something baked into WP/GP for this already.
That sounds like the best approach. To unhook everything and then re-hook them.
Couple of things that may help:
// Remove the title - which you have replaced with your own function
add_filter( 'woocommerce_show_page_title', '__return_false' );
// Remove the breadcrumb which you can hook back in elsewhere
remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 );