I did it! Or at least a semi-workaround for now...my god was this frustrating.

For those interested in the workaround:
// Resets local bitmask to global template's bitmask (should be a combination of all duplicated nodes' cells):
public void ResetGlobalBitmask(Vector2 region)
{
var usedTemplate = Globals.WALLTEMPLATEMAP.GetUsedCells();
var used = GetUsedCells();
Array[] usedIDArray = new Array[autotileID.Count];
// First, for each autotiled ID in tileset add to array to check later:
foreach (int id in autotileID)
{
GD.Print("Reseting bitmap of " + Name + " with ID " + id + "...");
usedIDArray[id] = Globals.WALLTEMPLATEMAP.GetUsedCellsById(id);
}
// Next, scroll through the wall template region, copying it to the current wall node, then update bitmask:
foreach (Vector2 vector in usedTemplate)
{
var index = 0;
foreach (Array cellArray in usedIDArray)
{
// Checks between different autotiled tiles to set correct tile index:
if(cellArray.Contains(vector)) SetCell((int)vector.x, (int)vector.y, (int)autotileID[index]);
index++;
}
}
// From testing, need to reset the bitmask from outside the foreach before resetting local used cells:
UpdateBitmaskRegion(region);
// Reset current wall node back to its own used cells (do not update the bitmask again after this, unless rerun):
foreach (Vector2 vector in usedTemplate)
{
if(!used.Contains(vector)) SetCell((int)vector.x, (int)vector.y, -1);
}
}