probabilmente la libreria setta i timer l momento dell'inizializzazione, non al momento di una write.
Invece l'arduino tende a ripetere tutte le inizializzazioni ad ogni write.
Il risultato è che librerie impazziscono, ma i codici arduino tendono a funzionare bene.
Insomma l'unica è vedere cosa modifica la libreria e cosa vien resettato ogni analogWrite, e capire chi "vince" o se ti rimane un'accozzaglia di settaggi che incasinano tutto