Digging deeper, I'm getting more confused. I started tracking what would cause Access Denied to appear, and found the code in postlist.php causing it:
Code
$Board_q = addslashes($Board);
$query = "
        SELECT Bo_Title,Bo_Last,Bo_Read_Perm,Bo_Write_Perm,Bo_Moderated,Bo_Cat,Bo_CatName,Bo_ThreadAge,Bo_Reply_Perm,Bo_HTML,Bo_Markup,Bo_SpecialHeader,Bo_StyleSheet,Bo_Number,Bo_Threads
        FROM   {$config['tbprefix']}Boards
        WHERE  Bo_Keyword = '$Board_q'
        AND Bo_Active = '1'
        $groupquery
";
$sth = $dbh -> do_query($query,__LINE__,__FILE__);
$rows = $dbh -> fetch_array($sth);
list($Title,$Last,$CanRead,$CanWrite,$Moderated,$C,$CatName,$ThreadAge,$CanReply,$HTML,$Markup,$fheader,$fstyle,$bonumber,$totaltopics) = $rows;
$dbh -> finish_sth($rows);
if (!$Title) {
      $html -> not_right($ubbt_lang['BAD_GROUP'],$Cat);
}
For some reason, some boards are now not returning $Title, though the SQL database is healthy, and inspecting the table manually shows no glaring faults.

Here is an SQL dumo of two of my boards. the ICE one doesn't work, the Announcements does:

Code
INSERT INTO `w3t_Boards` VALUES ('ICE', 'Discussion of other In Car Entertainment components', 'empeg_ice', 2219, 1130966641, 'Off', 'On', 3, 927126065, NULL, 'Off', 'no', 1, '-1-2-3-4-5-6-', '-1-2-3-5-', 213, 4, 'General', NULL, '-1-2-3-5-', NULL, NULL, 268639, 259473, 2330, NULL, 1);
INSERT INTO `w3t_Boards` VALUES ('Announcements', 'Announcements (Moderated)', 'ann', 175, 1131329158, 'Off', 'On', 10, 960540408, 0, 'Off', 'no', 1, '-1-2-3-4-5-6-', '-1-2-5-', 104, 1, 'General', 0, '-1-2-5-', 0, 'usedefault', 268937, 268935, 35, '', 1);