Per me ti conviene fare così:
In c# fai un programma che resta sempre attivo e interagisce con le seriali. Poi l'interfaccia web in php può comunicare con il programma in c# in vari modi, e questo dipende da come vanno gestite le operazioni: se non conta tanto il tempo di risposta e devi eseguire in modalità batch (e visto che amministri da web penso sia così) puoi benissimo: far scrivere in una tabella del DB le operazioni e il programma in c# se le legge (tramite query periodiche) e poi le esegue (usando ODBC per l'accesso al DB). Tutto ciò può risultare un po' lento, ma per come l'hai descritto penso che la velocità non sia un requisito... Altrimenti ci sono altri metodi per mettere in comunicazione gli script php con c#, ma vanno investigati un po'... tipo in php credo ci siano anche funzioni per interfacciarsi con .NET o COM+... ma non le ho mai usate. Queste magari ti danno tempi di risposta immediati, vedi di leggere le estensioni php. Però se vuoi una cosa semplice segui il primo approccio.
Ciao