What you experience is the effect of the Global Buffer Pool.
The rule is to overwrite the least used buffer if a new is required.
So the older the buffer the higher the chance to be overwritten and later reloaded.
Purging queries only affects code not data

Possible option:  increase  your buffer pool (double or triple size)
or try this approach: https://community.intersystems.com/post/global-buffer-questions
suggested by @Julius Kavay 

This total ODD !  But it works.
The list doesn't allow Carret ^ for the positive Globals
for globals to skip Carret ^ is required !!!


ENS>set list="Ens.*.GBL,'^Ens.Me*.GBL,'^Ens.C*.GBL"
ENS>ENS>set sc=$system.OBJ.Export(.list)
;; output skipped ;;
ENS>ZWRITE    ;processed Globals
list("^Ens.ActiveMessage.gbl")=""
list("^Ens.AppData.gbl")=""
list("^Ens.BP.ContextD.gbl")=""
list("^Ens.BP.ThreadD.gbl")=""
list("^Ens.BP.ThreadI.gbl")=""
list("^Ens.BusinessProcessD.gbl")=""
list("^Ens.BusinessProcessI.gbl")=""
list("^Ens.Debug.gbl")=""
list("^Ens.DocClassMap.gbl")=""
list("^Ens.JobStatus.gbl")=""
list("^Ens.Mirror.gbl")=""
list("^Ens.Queue.gbl")=""
list("^Ens.Rule.gbl")=""
list("^Ens.Util.IOLogD.gbl")=""
list("^Ens.Util.IOLogI.gbl")=""
list("^Ens.Util.LogD.gbl")=""
list("^Ens.Util.LogI.gbl")=""
list("^Ens.Util.ScheduleD.gbl")=""
sc=1
My interpretation:
First, a local array is collected, and then the negated subscripts are deleted (requiring now ^   !!)

Hi Dan !

ADD / CREATE is just wishful thinking. sad It is only able to EDIT an already EXISTING link.
If it exists you get asked: "Overwrite ?" otherwise "Not Found" as you have seen. angry

You must create first a dummy of type *.link.DFI  that you have to import by DeepSee Folder Manager
or better directly in Studio. You must then assign the correct name already there.
Folder Manager can't rename or move it !!  only Import/Export sad 

Here is a dummy link to start with.

<?xml version="1.0" encoding="UTF-8"?>
<Export generator="IRIS" version="26" zv="IRIS for Windows (x86-64) 2021.1.0PYTHON (Build 237U)" ts="2021-11-01 13:54:36">
<Document name="dummy.link.DFI">
<link 
  xmlns="http://www.intersystems.com/deepsee/library" 
  name="dummy" folderName="Links" 
  shared="true" 
  public="true" 
  locked="false"
  href=""
  title="" 
  description="" 
  keywords="" 
  owner="" 
  resource="" 
  timeCreated="" 
  createdBy="" category="" 
  bookCover=""
  >           
</link>
</Document>
</Export>

Feel free to place a PRODLOG on that bug.
I will not do it. I'm not willing to wait so long. crying
I just recently received a closing message on another PRODLOG  I had placed in early 2017. angry
 

In past, I have seen so many "re-invented wheels" on COS that were mostly kind of remakes of
existing packages or solutions. Though this is impressive from a coding point of view,
it is just a waste of energy from point of view of a project AND its maintenance.

I had similar experiences with SQL that was refused by "experienced" programmers
insisting on horrible $ORDER() / $QUERY() constructs almost un-supportable, to gain
a few microseconds of performance on a weekly report. 

The deeper reason: nobody explained it and trained them.
That's the behaviour to avoid. 

some hints.

  • use the opportunity to separate data from code. So you have already a new IRIS.DAT with all globals
  • create a fresh IRIS.DAT to be used just for routine (classes, ... )
  • now you should have a clean start of your IRIS instance
  • check if the globals are visible as expected, but neither classed not routines.
  • now open 1 Studio on Caché and 1 on your target IRIS namespace
  • next you can move all classes, routines, ... by drag&drop from Caché Studio to IRIS Studio
  •  
  • this last step could also be an XMLExport of all code and XML input but you miss eventually required adjustments.