If you customize your store page, and then change your Store Base URL (settings->presentation->Store Base), your store page content is lost...overwritten by the default store page content.
Currently you delete the page and create a new one. Could you just check that the slug is available and simply change the slug of the existing page instead?
In my particular case, we don't want any content in that page by default, so even adding a filter around the default content would help a lot.
Something like this would do, although you probably need to test to see if the new slug exists already or it'll automatically add a -2 to it (even if it exists in the trash):
$post_id = $wpdb->get_var("SELECT ID FROM " . $wpdb->posts . " WHERE post_name = '$old_slug' AND post_type = 'page'");
$old_post = get_post($post_id);
$old_post->post_name = $settings['slugs']['store'];