Hi @Canadiansal ,
According to your description, I've made a test for your reference:
1\ This is my test list 'LIST76'. If your data source is excel, the steps are similar. Ther are all Single line o text column.

2\ Add a Gallery control 'Gallery2' and set its Items prperty to:
Distinct(LIST76,Category)
3\ Add a gallery control 'Gallery3' and set its Items prperty to:
Filter(LIST76,Category=Gallery2.Selected.Result)
4\ Insert a textinput control 'TextInput2' into 'Gallery3' and set its default property to:
ThisItem.'Sub Category'
Set 'TextInput2' 's onchange property to:
Patch(LIST76,ThisItem,{'Sub Category':TextInput2.Text})
5\ Insert a textinput control 'TextInput1_1' into 'Gallery3' and set its default property to:
ThisItem.Rating
Set 'TextInput1_1' 's onchange property to:
Patch(LIST76,ThisItem,{Rating:TextInput1_1.Text})
6\ Insert a toggle control 'Toggle1' and set its OnChange property to:
Patch(LIST76,ThisItem,{'In stock':If(Toggle1.Value=true,"Yes","No") })
Set Toggle1' 's Default property to:
If(ThisItem.'In stock'="Yes",true,false)
7 The result is as follows:

Since this is a broad problem, I gave a broad solution.
Best Regards,
Wearsky
If my post helps, then please consider Accept it as the solution to help others. Thanks.