I'm not sure which scenario is causing the problems for you. And there are various preferences and track configurations that can cause differences in the behavior of events and automation. In preferences project midi, I use "zero controllers" and "patch/controller searchback" for the most predictable behaviors for my style. Also, my event list is set to show all possible event types. Also, in all my track headers, the [R] widget is set (to follow automation) and [Wt] (to record parameter/controller changes) is not set. So what follows is based on those settings (and different settings might not show the same behavior):
Here are some common scenarios:
The PG, pan, vol, etc. changes in the middle of a song loaded from a midi file ought to be seen in the event list. If not, bug.
If such events occur before any notes, they get put into the track parameters (header and inspector) and should not appear in the event list.
Events in the event list ought not change the value showing in the track header or inspector, otherwise bug.
Changing the widgets or sliders in the track header or track inspector during playback has an immediate audible effect but does not become a permanent part of the performance (not using the [Wt] setting). So when restarting playback, changes in those widgets only affect playback from the beginning of the song (i.e. before other events in the track).
Playing from the start of the song should not invoke events in the middle of the song (i.e. override track header parameters) until playback reaches those events. Otherwise, bug.
When an event is played through, or when playback is started after an event, the event sets the corresponding synth parameter, but does not change the track header/inspector value.
By the way, track header values can be deleted by double-clicking on the widgets, except bank and program which can be manually set to "none". Then the bank/pgm when starting playback from the song start could be unpredictable (depends where you last stopped playback) and the other parameters are "zeroed" (i.e. set to a noominal value) (because I chose "zero controllers when playback stops") or could be modified by controls in the synth view.
Editing parameters in the synth's own view is not permanent if there are settings in the track header or in the event list. I assume this is not what you are talking about.
I haven't loaded any problematic midi files with the issues you've seen, so I am only going by my observations and Sonar's known design parameters. Maybe you could post a MIDI file that shows these issues?
Bill B.