Redo Operation Scripting Help

I would really like some help here if possible...

Anyways my code is now:

// Redo Operation
// (c) 2017 Enternal

// Called by Directory Opus to initialize the script
function OnInit(initData)
{
    initData.name = "Redo Operation";
    initData.version = "0.0.1";
    initData.copyright = "(c) 2017 Enternal";
    //initData.url = "https://resource.dopus.com/";
    initData.desc = "Track copy/move operations and allow redo for other selected items";
    initData.default_enable = true;
    initData.min_version = "12.0";
}

// Called when a copy or move operation take place
function OnGetCopyQueueName(GetCopyQueueNameData)
{
    var reops_dest = GetCopyQueueNameData.dest;
    var reops_move = GetCopyQueueNameData.move;

    if (DOpus.Vars.Exists("reops_redo") == false) {
       DOpus.Output("reops_redo Does Not Exist. Creating reops_redo...");
       var reops_data = DOpus.Create.Vector();
    }
    else {
       var reops_data = DOpus.Vars.Get("reops_redo");
       DOpus.Output("reops_redo Existed, The Elements Are:");
       for (var i=0; i<reops_data.length; i++) {
          DOpus.Output("    Vector("+i+"): " +reops_data(i));
       }
    }

    reops_data.push_back = [reops_move, reops_dest];
    DOpus.Vars("reops_redo") = reops_data;
    DOpus.Vars("reops_redo").persist = true;

    //DOpus.Output("    Vector Persistency: " +DOpus.Vars("reops_redo").persist);
    //DOpus.Output("    Vector Length: " +reops_data.length);
    DOpus.Output("Results After Adding New Elements");
    for (var i=0; i<reops_data.length; i++) {
       DOpus.Output("    Vector("+i+"): " +reops_data(i));
    }
    var reops_data = DOpus.Vars.Get("reops_redo");
    DOpus.Output("reops_redo Right After DOpus.Vars... = reops_data:");
    for (var i=0; i<reops_data.length; i++) {
       DOpus.Output("    Vector("+i+"): " +reops_data(i));
    }

    DOpus.Output("");
    //DOpus.Vars.Delete("reops_redo");
}

But I'm running into an issue that I don't get. Run the code once above and you will get:

 1/18/2017 10:12 PM Redo Operation:  reops_redo Does Not Exist. Creating reops_redo...
 1/18/2017 10:12 PM Redo Operation:  Results After Adding New Elements
 1/18/2017 10:12 PM Redo Operation:      Vector(0): false,E:\New Folder
 1/18/2017 10:12 PM Redo Operation:  reops_redo Right After DOpus.Vars... = reops:
 1/18/2017 10:12 PM Redo Operation:      Vector(0): false,E:\New Folder
 1/18/2017 10:12 PM Redo Operation:  

That makes sense. the global DOpus variable reops_redo does not exist and thus it's created. After adding a new element into it, the results are displayed. The new vector is now saved into the DOpus global reops_redo. I then recheck to see if reops_redo have the correct data and it does.

Ran it the second time gave me:

 1/18/2017 10:12 PM Redo Operation:  reops_redo Existed, The Elements Are:
 1/18/2017 10:12 PM Redo Operation:      Vector(0): 
 1/18/2017 10:12 PM Redo Operation:  Results After Adding New Elements
 1/18/2017 10:12 PM Redo Operation:      Vector(0): 
 1/18/2017 10:12 PM Redo Operation:      Vector(1): false,E:\New Folder
 1/18/2017 10:12 PM Redo Operation:  reops_redo Right After DOpus.Vars... = reops:
 1/18/2017 10:12 PM Redo Operation:      Vector(0): 
 1/18/2017 10:12 PM Redo Operation:      Vector(1): false,E:\New Folder
 1/18/2017 10:12 PM Redo Operation:  

So reops_redo exist now that it was created during the 1st run which is what I expected. The content of it however is empty?! The length of it is correct though. Adding new element into it and the results are as expected except Vector(0) is empty which is not what I expected as I have said before.

Ran it the 3rd time gave me:

 1/18/2017 10:12 PM Redo Operation:  reops_redo Existed, The Elements Are:
 1/18/2017 10:12 PM Redo Operation:      Vector(0): 
 1/18/2017 10:12 PM Redo Operation:      Vector(1): 
 1/18/2017 10:12 PM Redo Operation:  Results After Adding New Elements
 1/18/2017 10:12 PM Redo Operation:      Vector(0): 
 1/18/2017 10:12 PM Redo Operation:      Vector(1): 
 1/18/2017 10:12 PM Redo Operation:      Vector(2): false,E:\New Folder
 1/18/2017 10:12 PM Redo Operation:  reops_redo Right After DOpus.Vars... = reops:
 1/18/2017 10:12 PM Redo Operation:      Vector(0): 
 1/18/2017 10:12 PM Redo Operation:      Vector(1): 
 1/18/2017 10:12 PM Redo Operation:      Vector(2): false,E:\New Folder
 1/18/2017 10:12 PM Redo Operation:  

So like before, for some reason the content of reops_redo is completely empty even though the length is correct. What's going on here? I found tbone's thread here Vector persistency issue and ran that code. That code ran perfectly fine. I actually simply copied and paste it directly into my code and it ran perfectly with the second time giving the correct results. Yet mine is not...

The popout list that you get from the command Undo LIST, are there other ways to make this type of dialog? Basically parse the destinations that I retrieve from the above code and then list them in just like that Undo LIST.