And here is the hack

Got bored over lunch so decided to have a look at this ... modded snippet is attached to this post.
The main change is when retrieving the template values, I’ve used the code below to generate the template dropdown (if no value is selected, for whatever reason, then the site default template will be used):
// get template
$templateSQL = $modx->db->select('*',$modx->getFullTableName('site_templates'));
if ($modx->db->getRecordCount($templateSQL) > 0 ) {
$templateDropdown = '<select name="template">';
while ($row = $modx->db->getRow($templateSQL)) {
$templateDropdown .= '<option value="'.$row['id'].'">'.$row['templatename'].'</option>';
}
$templateDropdown .= '</select>';
$modx->setPlaceholder('templateDropdown',$templateDropdown);
}
if (isset($_POST['template'])) {
$template = $_POST['template'];
} else {
$template = $modx->config['default_template'];
}
And, then I modified the form template to include the template field ... and voila!
Hope that helps,
Garry