Tanto la tabla reciboscli como las recibosprov tienen claves ajenas a las facturas. Si se borra la factura se borran los asientos.
Me imagino que esas claves ajenas no llegaron a crearse en tus tablas por algún motivo. Ejecuta este sql:
delete from reciboscli where idfactura not in (select idfactura from facturascli);
delete from recibosprov where idfactura not in (select idfactura from facturasprov);
Eliminará los recibos conflictivos, y debería activar las claves ajenas también.
Saludos.