The Toggle value goes back issue is because there is a Patch function in each loop, so the data source will be refreshed in each loop, and the other toggle values would go back.
The workaround is easy, bind the gallery to a collection, instead of the sharepoint list directly, so each change in the loop is not immediately reflected in the gallery, then update the collection after the ForAll loop ends.
1. Set App.OnStart property: ClearCollect(myCol,'SP list')
2. Set Gallery.Item: myCol
3. Set Save Button.OnSelect as below, to re-define the collection after forall loop.