Somewhere, adding the extra lines has created a recursive call that gets back to RepByZone:SwitchedZones()
Simple check, change:
Code:
function RepByZone:SwitchedZones()
to:
Code:
local count = 0
function RepByZone:SwitchedZones()
count = count + 1
print("count", count)
And see how many times you end up in the same place before it errors.