If a boolean (union, difference, split) doesn’t work inspect the intersections. These must form closed loops. But still then no guarantee for Boolean to succeed. Looking at the screenshot I suspect you have some ‘intersections’ of surfaces that are tangent or close to tangent to each other
