9Slice (which uses SliceCenter) is supposed to be used to set the proper boundaries of 9 separate areas inside an image. Instead of setting it (in real-time) to approximate how you’d want the bar to be stretched, why don’t you just set it properly once and adjust the Size instead?
Here’s a 9slice tutorial I found that might help you. Set your bars’ Y values to something constant, and change the fill bar’s X Scale to match what XP currently is. Like this:
FillBar.Size = UDim2.new(CurrentXP/TotalXP,0,YScale,YOffset)