My own understanding is that Sonos does not apply volume normalisation to tracks, but Sonos does alter the playback level using the ITUNNORM or REPLAYGAIN_TRACKGAIN tags in the embedded metadata for the file. So you could look into adding those tags to any locally stored tracks, or perhaps set iOS ‘sound check" and then stream to your devices via Airplay2, which I think may work too.
Otherwise I think all Sonos devices will just play the audio at the tracks ‘original’ set volume levels.
These sound level changes are the biggest disrupters of the listening experience after music play stuttering because of WiFi or internet issues. But instead of addressing this, Sonos has now joined the bandwagon of the Hi Res red herring.
There are some workarounds to this.
The first is to not to mix sources for playlists. For instance don’t make a playlist of songs from Apple Music and those from local files on a server.
The other is to delete from the playlist the outliers that are either too loud or the opposite. Having sound levels all over the place does not work well for parties where one can’t easily change them via the app, and I find it better to just delete the outliers.
These days I often also just listen to an album from start to finish to get a consistent sound level.