WP перезаписывает файлы только в том случае, когда в родительской теме они подключаются через
get_stylesheet_directory()
, а не через
get_template_directory()
Возможно, для шорткодов будет логичнее его разрегистрировать, а потом перерегистровать с вашей функцией.
remove_shortcode('shortcode');
add_shortcode('shortcode', 'child_theme_func');