I believe it's this:
if (($b["minlevel"] <= $userrow["level"]) && ($b["classonly"] == $userrow["charclass"] ^ $b["classexclude"] != $userrow["charclass"])) {
Should be:
if (($b["minlevel"] <= $userrow["level"]) && ($b["classonly"] == $userrow["charclass"] & $b["classexclude"] != $userrow["charclass"])) {