The issue was with the php code that determines when to add the "active" class. You had:
<?php echo(($_SERVER['REQUEST_URI']=="/dat/archives/".$SavingDorsetArchives->getColumnVal("Permalink") || $_SERVER['PHP_SELF']=="/dat/projectarchive.php" || $_SERVER['PHP_SELF']=="/dat/purchasearchive.php" || $_SERVER['REQUEST_URI']=="/dat/project/".$PageContents->getColumnVal("Permalink") || $_SERVER['REQUEST_URI']=="/dat/purchase/".$PageContents->getColumnVal("Permalink"))?"active":""); ?>
it needed to be:
<?php echo(($_SERVER['REQUEST_URI']=="/dat/archives/".$SavingDorsetArchives->getColumnVal("Permalink") || $_SERVER['PHP_SELF']=="/dat/projectarchive.php" || $_SERVER['PHP_SELF']=="/dat/purchasearchive.php" || ($_SERVER['REQUEST_URI']=="/dat/project/".$PageContents->getColumnVal("Permalink") && $SavingDorsetArchives->getColumnVal("Permalink") == "projects") || ($_SERVER['REQUEST_URI']=="/dat/purchase/".$PageContents->getColumnVal("Permalink")) && $SavingDorsetArchives->getColumnVal("Permalink") == "purchases")?"active":""); ?>
Your IF statement was checking to see if it had a URI that matched purchase or project links, but it also had to check that you were currently displaying the associated section.