Boolean modifier confusion

Why do I seem to need alternate modes to get these to work together? Also if I try and make the instance real, one of these settings gets lost or changed and it doesnt convert correctly.