Boolean Difference keeps failing!

I want too boolean these objects but it keeps failing and I can’t seem to do it.

pruusten kamuk 7mm.3dm (1.5 MB)

It appears that the gem is a Block Instance, not a polysurface. Also 2 Intersection errors at the very bottom of the gem holder.

Yeah I can see the errors but I’m unsure about how to fix them, do you have any suggestions?

This what you mean?

RE_pruusten kamuk 7mm.3dm (978.0 KB)
You can explode, UntrimAll and you will see how I changed the trim surfaces.
BooleanDifference then not one by one but every second.