Yo lo que te puedo aconsejar es que no unas código HTML con PHP, separalos.
Código PHP:
Ver original<select class="form-control" style="height: 40px;" name="contrato" id="contrato" >
<!-- Estas Variables vienen de tu selecte maestro -->
<option value="<?php echo $contrato; ?>"><?php echo $contrato; ?></option>
<?php
$contrato = $mysqli->query("SELECT id,nombre FROM tipo_contrato ORDER BY nombre");
while ($row = $contrato->fetch_array(MYSQLI_ASSOC)) {
?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['nombre']; ?></option>
<?php
}
?>
</select>
Incluso en el código anterior podemos meter los
$row['id']; en variables
$id = row['id']; y seria bastante bueno.
Y claro que habilites los errores, veas el código HTML generado y hagas var_dump()