I have this event running and working almost as it should.
The only problem is after running the echo volumes drop down to 0. I tried to add a event to increase volume but nothing happens.
Your repeat is malformed, which may cause errors, but likely not until after your speak action ran at least once (so it may have worked-ish...). I'm not sure what's going on, assuming Echo Speaks can set volume and implemented it in this command (a relatively new Hubitat feature), but I'd probably fix the rule and look at Logs regardless.
For examples of properly constricted repeats, see: Rule-5.1 - Hubitat Documentation
I'd take a closer look at your REPEAT / END-REP loop. I think what you want to do is stop repeating actions if the virtual garbage switch is off. Instead, you're ending the loop, which will cause some odd behavior.
I find it MUCH easier to use a browser for such things. The screen real estate on the mobile app just makes things tough to screen shot and review.
I'm not sure what or how to change
It works every time. The only thing is the volume problem
There is still a problem with your rule that you should fix. See the docs I linked to for examples of what repeats should look like, and pick one that does what you want.
For the volume issue, maybe leave the rule out of the picture for a second. Can you use volume with the Speak command directly from the device detail page? If not, it won't work with the rule either, but may be something that could be addressed in the driver if it's something Echo Speaks can actually do. (I haven't used it in a while so I don't know.)