Was könnte das problem sein?
Das liegt, daran, dass die Controls zwar gelöscht werden, aber in den Arrays immer noch vorhanden sind!
Ein einfaches "_ArrayDelete($TabItem,GUICtrlRead($Tab)+1)" in Zeile 88 sollte da abhilfe schaffen!
Case $tab_close[$i]
GUICtrlDelete($TabItem[GUICtrlRead($Tab)+1])
_ArrayDelete($TabItem,GUICtrlRead($Tab)+1)