Hola Cesar, gracias por responder tan pronto.
He comenzado haciendo las pruebas como indicas desde una query muy simple en adelante.
Al final el problema no era las comillas pero igualmente debo agradecer porque con tu consejo he salido del bucle mental que tenía.
No se exactamente el origen del problema pero lo solucioné incluyendo un impute, type hidden con value=$id.
(decidí cambiar el nombre de $id a $idservicio porque me hacía lio)
<input id="idservicio" type="hidden" name="idservicio" value="<?php echo $idservicio;?>
"/>
De esta forma cuando hago submit recibo nuevamente el valor idservicio y lo recupero con POST justo antes de la query.
$idservicio = $_POST['idservicio'];
mysqli_query($link, "UPDATE servicios SET ser_fecha='$fecha', ser_horai='$horai', ser_horaf='$horaf', ser_codigo='$codigo', ser_contacto='$contacto', ser_problema='$problema', ser_diagnostico='$diagnostico', ser_descripcion='$descripcion', ser_estado='$estado' WHERE id = '".$idservicio."'");
Mantuve tu "formato" de comillas aunque no lo entiendo. Veo comillas simples y dobles consecutivas y lo de los puntos para concatenar no se que pintan pero funciona.