The /etc/default/grub is used by grub2-mkconfig (and scripts in /etc/grub.d/) to generate the grub.cfg (and some other files). I don’t see enable label in:
The “some other files” is now significant – each regular GRUB entry is a file in /boot/loader/entries/ and you need grub2-mkconfig --update-bls-cmdline to recreate them.
When new kernel installs, it gets /boot/loader/entries/*.conf from grubby, which uses /etc/kernel/cmdline for some options. The latter file might be updated by grub2-mkconfig --update-bls-cmdline or grubby --update.
Since the “root=…” is copied from /etc/kernel/cmdline to every /boot/loader/entries/*.conf – not from /etc/default/grub – focus on it (or those GRUB…UUID… variables).
Idea: edit the /etc/kernel/cmdline to contain label and do not run grub2-mkconfig after that.
(If grubby does the edit while changing ‘root=’ in entries, fine, else manually – for future kernels.)