Hi,
first of all I'd change the include that prints the form. First of all remove the <html>..<body> and </body></html> part since you already have it in the other script.
I think it isn't neccessary to use a function in the form script. Change it so that it just prints the form and at the end of the validation script check if the count of the error array is greater than 0 and then just include the form script.
This makes it a little bit easier to set the values of the form elements.
Simple example (for a input with a name of e.g. 'firstname'):
<?PHP
$strFirstame = isset($_POST['firstname']) ? $_POST['firstname'] : "";
?>
<form name='firstname' type='text' value='<?=$strFirstname ?>'>
Setting the selected property of a select input is similar. Just add a selected to the option that matches the value submitted for that select.
To improve the validation create functions that also check if e.g. the values expected to be numeric are really numeric.
By the way ... I think there should be several examples of form validation scripts in the various PHP libraries like the one of phpbuilder.
Thomas