Unfortunately the AudioProcessorListener is misleading. Eventually it was meant for that purpose, but here is explained where the audioProcessorListener is actually used:
That explains, why you are not notified, when the change is a result from the host.
If you want to have callbacks from the AudioProcessorParameters, I found AudioProcessorValueTreeState with AudioProcessorValueTreeState::Listener::parameterChanged() very handy.
There is also a AudioProcessorValueTreeState tutorial, and some months ago I played around with it on github - tapeDelay