Seems to me that if you want to make a surface that intersects the simplest, easiest and most accurate way to do that is make the surface extend far enough so that it will intersect and then trim it back using the intersection.
That’s the route cause of your problem. The extended purple curve has discontinuous curvature.
NetworkSrf creates a surface which is curvature (G2) continuous everwhere including along the edges. If an input curve has discontinuous curvature NetworkSrf determines a surface which approximately fits through the discontinuous curve. The closeness of the fit of the result of NetworkSrf to the input curves is determined in part by the tolerance setting in NetworkSrf.
You need to either create a continuous curvature, or build two surfaces which a join at the curvature discontinuity.
I find that if I make it larger (0.001), I get details that disappear.
Here I continued the circle and ellipse frames to form complete loops so that the single surface clearly passes all the way through and I get the same no intersection error if I try to split.
If you explode the green object, then you are able to trim its side surface using the frame curves.
The green and the blue surfaces are then joinable without problems.
( I’ve found that sometimes surface edges can trim what the surface itself is unable to trim … )