I'm creating a Gradebook for teachers and so far have created a Gallery for the StudentRoster and a Subgallery for the AssignmentsList. In the rough sketch below, the names on the left are the Gallery, and the 1,2,3, etc. are the Subgallery.

I'm trying to Patch data that uses items from both a gallery and a subgallery (though I could easily make it work to just pull from the subgallery if needed).
The problem I have is that I can't get it to work the same way as pulling data from a regular Gallery.
Button Code simply does nothing:
ForAll(GradeGallery.AllItems,Patch(tblGradebookMaster,Defaults(tblGradebookMaster),{StudentID:Value(Label30_1.Text),CCRecordID:Label25.Text,Rubric:Value(TextInput2.Text),AsID:Value(Label37.Text)}))
Currently I'm using a work around 'On Change' to save each one individually automatically:
If(IsEmpty(Filter(tblGradebookMaster,StudentID=Value(Label30_1.Text),CCRecordID=Label25.Text,AsID=Value(Label37.Text)))=true,
Patch(tblGradebookMaster,Defaults(tblGradebookMaster),{StudentID:Value(Label30_1.Text),CCRecordID:Label25.Text,Rubric:Value(TextInput2.Text),AsID:Value(Label37.Text)}),
Patch(tblGradebookMaster,First(Filter(tblGradebookMaster,StudentID=Value(Label30_1.Text),CCRecordID=Label25.Text,AsID=Value(Label37.Text))),{Rubric:Value(TextInput2.Text)}))
But it causes issues with the data source when the user updates too quickly and disconnects itself. This is the only work around I've been able to get though. I'd much prefer being able to collect the whole table at once, but I'd settle for less.
Thank you for your time,