Ok for some reason when I read your code I missed an if and thought you were deleting and remaking every time you opened the gui.
I still don't understand why you're deleting the buttons but I'll get something done soon when I'm less busy.
When the GUI is loaded, or opened for the first time (forget which) my Delete button needs to fit inbetween the buttons to look good
by default, I can't fit in all 3 without it looking bad, so I delete the cancel and load buttons, and recreate them with the new position/extent variables
this only happens once
I have a check in place to check if my delete button exists upon doing so, if not it executes my GUI