This was tricky. Your curves weren’t nicely aligned and the figure 8 had kinks. Next problem is the self intersection which was already mentioned in another topic I think.
To resolve the self intersection you need to split the closed surface and boolean union bit by bit.
See the result. I copied your object twice so you see step by step what I did with the solid.
bezkrai.3dm (4.8 MB)
Right, @Helvetosaur seemed to have fixed your figure 8 already…
Boolean Difference keeps failing! - Rhino / Rhino for Windows - McNeel Forum