Looks like that D- in spelling has come back to haunt me.
So what was happening was once I had enough magistrates, it checked the next line of code. Since AgeModren tried to pull data from the non-existent "ERA_MODREN", the line "if (pPlayer:GetCurrentEra() < AgeModren)" threw an error.
After fixing my spelling fail, I ran into a new error: the enact button showed up properly, but clicking it didn't do anything. After checking the LUA logs which I expected to be full of useless errors... it showed exactly one error, which pointed out the exact problem - icost was a nil value. Apparently iCost and icost are different variables.
Fixing the variable made the decision work

So thank you very much for your help