Replace theme function

If the Theme is well developed they wrapped functions in an

    if (!function_exists(something))

So the you can overwrite just the function by having it in your child themes function.php

You may also check if your theme provides hooks and filters to customize behaviour.

If that isn’t the case you can either do what you already did… and no … if developers changes code you have to deal with it.
So I recommend to well document your changes. It’s a good idea to put everything in a Git repository to just run a diff on file changes