It seems when I delete the config.cache, it replaces it with one containing something like i:-1;
From researching around, it seems that I can build an array with parse_config(true) and then overwrite the config.cache file with a serialize()'d config array, however I'm noticing that pfsense's parse_config() function creates an array which somehow loses some of the passthrumac entries, which is not good. Any suggestions on how to fix this behavior?