Monoprice.restore behavior issue

I’m trying to use the monoprice.snapshot and monoprice.restore functions to trigger zones on for TTS announcements from Home Assistant. My automation does this:

Take a snapshot (monoprice.snapshot)
Turn on all media player entities
Change source to Home Assistant
Adjust volume
Play TTS
Restore to original config (monoprice.restore)

Everything works great all the way up to monoprice.restore. The issue is, when zones are off prior to the automation being triggered, the snapshot records them as off, and when the restore is executed it restores the power state prior to the volume/source states. Thus, when I turn them on later, it’s set to the Home Assistant source and volume of the TTS announcement rather than the original configuration. Is there any way to do this I’m not thinking of? I tried using scene.create and scene.turn_on, but it appears to do exactly the same thing. Any advice? I opened an issue with the Monoprice integration dev team thinking maybe what could be done is at least set the volume before changing the power state, but I can’t think of a way around this.