I was modeling a Klein Bottle and end up in this type of problem after doing Solidify:
I managed to remove the intersections on the Klein duplicating the surfaces and doing Boolean operations with a lot of manual deleting afterwards.
Now I am trying to find a better approach for this problem. I think the easiest solution would be to duplicate both pipes and separate them, after that doing a Intersect Boolean and a Difference in sequence; but it is not removed completely. How it is possible to fix this?
Edit: This pipe problem is a simplification of the Klein. It not about the steps to create pipes, but to fix the mesh obtained by complex XYZ Math Surface: