Wow. That's a question that could take a book to answer. There are very many different ways of structuring CSS in a field force but let's bring it to the two key issues:
1. fighting elements - companies and battalions exist well forward in austere areas where the more agile a force is, and therefore unencumbered by a large administrative tail, the better. More complex CSS functions can be better carried out in more secure areas to the rear; and
2. CSS must be continuous. Generally it works on day cycles albeit that sometimes, in an emergency, it may need to be more often than that. Distance from supply depots becomes a factor and how many days of supply you can keep as far forward as possible or how far you have to frag damaged equipment back in order to repair it.
In a true divisional structure, brigades are mere tactical units which fight in the close battle while divisions are ones that use their resources to shape operations for the brigades be it through fires or CSS management.
These factors mean that CSS at the company level is tiny, maybe one supply vehicle and a veh recovery team and electronic maint team. At battalion it gets bigger to a maintenance platoon and a supply platoon. At the brigade it grows again to a maint coy and a supply company. For an independent brigade that may be enough with the service battalion tying into a national support element.
Once you build divisions with doctrinal structures, you need to provide both elements for brigade service battalions to tie into and to also provide a service battalion level of support for the divisional troops. Some resources follow different paths such as artillery ammunition from that of small arms and food.
There are many ways to structure this. In many divisions there are no brigade-level service battalions. The divisional CSS brigade does it all - the newly transformed US light divisions with their small MBCTs are an example. There the BSBs are part of the div sustainment brigade. In American armoured divisions, the combined arms, engineer and artillery battalions do not have CSS companies of their own. Their forward support companies are actually part of the TO&E of the brigade support battalion (BSB) but are habitually paired with their supported battalions. Unlike the light divisions, the armoured brigades in an armoured division have their own BSBs. Their division sustainment brigades are basically small and have only a few battalions as standard - a special troops battalion (where you keep funny little groups like finance people, mortuary folks, etc), a sustainment support battalion (supply and transport mostly) and maybe an MP battalion. But they are organized to be reinforced by specialist battalions such as logistics, transport or maintenance as required from the vast herd of USAR and ARNG CSS battalions they have. Note that American fires brigades generally do not have their own BSBs. It matters too as to whether behind the division there is a Canadian-like NSE or an own nation corps or theatre support structure.
To get back to the main point, the structures can vary greatly based on how the relevant army considers and weighs the best way to satisfy the two key issues listed above. IMHO, there does appear to be some redundancy and I do have a hard time understanding the doctrinal concept behind the structure. While I have no issue with a svc bn with each of the CMBGs, I do wonder about the need for a svc bn with each of the arty bde and CCSB. I would thing that the divisional CSS bde should be able to handle that. BUT - and its a big BUT - I don't see 1 Div as a deployable div per se. I see it as a force generating entity that may end up deploying a division-level task force made up of bits and pieces of 1 Div and, again IMHO, you can never have enough CSS force generating elements to draw on - so redundancy is good.