hi. it seems that using sprite_set_live on a sprite disables its 9slice element. i havent tested it thoughrly, but a quick setup of creating a sprite, enabeling 9slice, activating set_live and drawing, shows that the 9slice doesnt work.
sprite_set_live is mostly just a sprite_replace call so it’s not very smart when it comes to less-common features and even less smart when it comes to things you can’t do in GML (like different times per frame).
For a workaround, could save your original sprite_get_nineslice(spr) and sprite_set_nineslice it when sprite_get_nineslice(spr).enabled == false.