Multiple holes by boolean?

A have a sphere with wall thickness that is separated for 3D print to 36 pieces. I need to randomly pierce it by holes. So I a made the 36 pieces a one object, model the cylinders also made them one object and then tried to subtract them from the sphere. As I expected, the Boolean went mad and it turned out badly. How to achieve the desired model with working Boolean or in other way?

For the 36 segments of your sphere shell, are those surfaces touching, or is there a little gap?

Could you share your file?

I guess that they are intersecting a little. Here is the file.