Yeah, see if you know Python, then OpenSCAD is not a hard jump? One of the reasons why I really like OpenSCAD is that libraries like BOSL2 have parametric joiners and snaps and stuff. And you could totally write modifiers for FreeCAD or Blender to do it, sure, but it's a lot less trouble to get it done with OpenSCAD. This way your end-result would let you input the size of the bed and it would figure out how many sections it needs, etc.
Lesee... 120x40x40cm is a lot of plastic to print, even with a single printer running all day all night.
What I'd suggest is that you make the wooden outside for the 120x40x40cm shelf and make 20cm x 20cm x 40cm units. At which point you can make bigger multi-part modules. It might actually make sense to keep the cups separate because you could adjust the holes and stuff based on the plant's needs. Whereas the reservoir section is going to be happiest as a single tub. But the important part is that if you are a few modules short, just add a spacer for this season. And it gives you more time to experiment on the tub and allows you to swap that out mid-season.
You can always mock some stuff up and try it out in PrusaSlicer to see how long it thinks it'll take?
Wall thickness potentially depends on the size of the object? I guess 2mm would the the starting point, fill one with soil, see how sturdy it feels. Complexity for 3D printing is "free", kinda. A lot of the best container designs incorporate ribs to strengthen them without using up too much material. Given that the joins are the weak part, you'd potentially want that a lot thicker.
You also want to look at "vase mode". Some of the fastest printing objects you can get on a 3D printer are where you design around the constraints of vase mode and then you can use a fat nozzle with thick layers to print really fast.
You can always print plumbing instead of using PVC pipes? I've definitely seen self-watering pots such that they just have a pipe incorporated into the design such that it just sticks up along the corner. So, worse case, each module has a watering port. If you want to get fancy, you could make a manifold such that a single pipe sticks up in the middle and fills 4 reservoirs, although the fancier the plumbing the more likely you are to have one of them get dried out faster unless your filling routine tops them off.