Tbh, you haven’t chosen the easiest component to start haha Components in repeated list are a bit trickier because of that particular context.
Moving the subcategories up was the good move. Because when nested inside another checkbox, you have style dependency that you can easily avoid (you get extra spacing, and the checkbox is oddly positioned in the middle of your group). Also, the nesting is not necessary.
For column, you can check the display: grid property. And style is desktop-first, so you can set different styles on smaller breakpoints.
The functionality is where it gets tricky. But the idea is to have one variable that is storing all of your data, including the labels and there values. For instance:
{
name: { label: "Barges For Sale", value: false },
subcategories: [
{ label: "ABS Barges For Sale", value: false },
{ label: "Crane Barges For Sale", value: false },
{ label: "Deck Barges For Sale", value: false },
{ label: "Hopper Barges For Sale", value: false },
{ label: "Quarters Barges For Sale", value: false },
{ label: "Sectional Barges For Sale", value: false },
{ label: "Tank Barges For Sale", value: false },
{ label: "Spud Barges For Sale", value: false }
]
}
That variable is bound to your elements (like you probably have already). An additional step might be required if data is from a collection (but that can be tackled after)
Everytime you interact with the checkboxes, you’ll want to modify the value stored in that variable so that the variables always reflects the states of your checkboxes.
You have an initial state prop on the checkbox that needs to be bound to the value in the variable.
(I think I talk about that in this video)
To get that automatic check of the category, you can add an additional action on the on change workflow on each checkbox.
I know that’s a really rough explanation of how to do this. But I hope it can still gives you keys to keep you going! I can do an walkthrough video later on if you need 
I love a good challenge so here is what I managed to achieve (I’ve cheated a bit with a custom component to get that indeterminate state on the checkbox)
