It is mostly a case of working at too small a scale as I guessed. Try scaling the group up and then intersecting the faces so you can trim off the unwanted bits. I’d do it to show you but can’t at the moment. I will probably have time in a few hours if you can hang on or unless someone else has time.
Your main issue is messy intersections. I agree with Dave. Scaling up will help. So will creating circles with fewer sides (depending on the size you will be printing at, you may be able to get away with fewer sides, thus less intersecting geometry).
No more than absolutely needed. What is this thing and how will it be used?
That’s one way. My preference is to make the object a component instead, copy it, scale up the copy and do the fix. Then close the large copy and delete it. The original will have the same work done to it and be where you left it and at its original size.
Take a look at this and tell me if it will work. I round a few of the dimensions to make them easier to deal with. I don’t know if that’s important or not. I reduced the number of sides on circles to 48. I think that’s still smooth enough for the size of this and it makes it easier to work with as Aaron indicated. Since the arches on either side were smaller in cross section than the ring in your model, I did the same thing. It would be easier if they were the same cross section radius, though.