the problem is caused by the summit of two edges being very close to the limit of a portion of the cylinder. The Boolean Union operation does not perform as expected in this case nor does the offset face. Exemple of problematic summits are circled in red.
move the problematic summits away from the edge of the cylinder’s portion by a small amount (eg 0.01mm) on the sketch
or do the face offset before doing the Boolean Union, which is what I’ve done on the .shapr project.
I dit it one portion of the cylinder at a time to identify the problematic parts.
It works fine until offset 14 of the history.
Then, if you try to offset face on (1)+(2) or (1)+(3) of the screenshot, it fails. You can offset (2)+(3) and then offset (1).
So, on history’s Face Offset 14, I offset everything except the shapes like (1), and on Face Offset 15, I offset the remaining shapes like (1).
Last change, I used Replace Face instead of Face Offset to resize the height of the cylinder as it creates a better result with a top smooth face without an edge.