Ok I think I understand what you are looking for here.

You have four sections (in this case four different 'houses' within your school) and what you want is to take the most recent articles from each house and display them within an block? yes?
There are two ways you can do this:
First, you will have to modify the new articles block and create a loop around something like this:
function b_wfs_new_show($options)
{
global $xoopsDB;
$myts = &MyTextSanitizer :: getInstance();
$block = array();
$sql = "SELECT id, title FROM " . $xoopsDB -> prefix("wfs_category") . "";
list($category_id, $title) = $xoopsDB -> fetchrow($result);
$categorycount = $xoopsDB -> getRowsNum($result2);
for ($i = 0; $i < count($categorycount); $i++) {
$sql2 = "SELECT articleid, title, published, expired, counter, groupid FROM " . $xoopsDB -> prefix("wfs_article") . " WHERE published < " . time() . " AND published > 0 AND (expired = 0 OR expired > " . time() . ") AND noshowart = 0 AND offline = 0 ORDER BY " . $options[0] . " AND categoryid = " . $category_id . " DESC";
$result2 = $xoopsDB -> query($sql2, $options[1], 0);
while ($myrow = $xoopsDB -> fetchArray($result)) {
if (checkAccess($myrow["groupid"])) {
$wfs = array();
$title = $myts -> makeTboxData4Show($myrow["title"]);
if (!XOOPS_USE_MULTIBYTES) {
if (strlen($myrow['title']) >= $options[2]) {
$title = $myts -> makeTboxData4Show(substr($myrow['title'], 0, ($options[2] -1))) . "...";
}
}
$wfs['title'][$i] = $title;
$wfs['id'][$i] = $myrow['articleid'];
if ($options[0] == "published") {
$wfs['new'][$i] = formatTimestamp($myrow['published'], "s");
} elseif ($options[0] == "counter") {
$wfs['new'][$i] = $myrow['counter'];
}
$block['new'][$i][] = $wfs;
}
}
}
return $block;
}
(Not tested this but it should give you a few pointers on what should be done.
The other way would be to clone the wfs_new.php block for each category and change this line:
$sql = "SELECT articleid, title, published, expired, counter, groupid FROM " . $xoopsDB -> prefix("wfs_article") . " WHERE published < " . time() . " AND published > 0 AND (expired = 0 OR expired > " . time() . ") AND noshowart = 0 AND offline = 0 ORDER BY " . $options[0] . " DESC";
to
$sql = "SELECT articleid, title, published, expired, counter, groupid FROM " . $xoopsDB -> prefix("wfs_article") . " WHERE published < " . time() . " AND published > 0 AND (expired = 0 OR expired > " . time() . ") AND noshowart = 0 AND offline = 0 ORDER BY " . $options[0] . " AND categoryid = " . whatever categoryid you wish to use. " DESC";
Hope that helps in some way.