I have 2 suggestions;
You might try choosing a Boolean "cut" instead of a "subtraction". This cuts the mesh, but doesn't remove polygons. It gives you the chance to inspect the results and choose manually which polygons to remove. You can also do some vertex-welding and other manipulations to tidy things up before deleting the polygons. I've done this many times and almost always find the Boolean cut is better behaved than subtraction.
Another technique I've read about but not tried yet, is to temporarily scale up your whole model by a large factor before applying the Boolean. I think this is supposed to give cleaner results because precision errors in the Boolean algorithm will not be so significant if all the distances are larger. After the Boolean, you shrink your model back down to its original size.
Finally just a speculation more than a suggestion. I'm wondering if you could limit the Boolean damage by first cutting (not subtracting) a rectangular box around the area where the blue object intersects. Then when you do the Boolean with the blue object, any edges and polys it creates can only fan out as far as that rectangular cut. I'm not sure this would improve things or make them worse, you would need to try it and see.