If there is a SHC whose shcluster_label is my_old_shc and I want to change it to my_new_shc, how would I change it so that the SHC doesn't break on me?
My idea would be to run splunk edit shcluster-config -shcluster_label my_new_shc on all of the search head cluster members then also running the same command on the deployer. After that, I restart all of the search head cluster members and the deployer. Does that sound right?
Yes, or if you are admining your cluister correctly, you can change it in server.conf and push that out everywhere. In any case, the label is just that: a label. It isn't used for anything really, so changing it is very, very low risk.