Boolean diff sometimes doesnt work and I cant see what I have done wrong.

 From:  simon (NOAH)
11195.1 
Hi.
I am making a spinner for an rc plane.
I created a curve, and ran it round a circular rail.
I deleted the disk at the base, and gave the whole thing some thickness by creating a shell.
I then made three shapes to remove for the propeller blades to fit in.
I tried to boolean/diff these three shapes, but there is no response from MOI.
I then tried to boolean/merge all the shapes, but MOI randomly deleted some but not all of the shapes.

What am I doing wrong?
Simon