"ZWriteEnable = True;" is the problem. Sort of. The transparent parts are writing to the z-buffer. Since the other parts have greater depth, they are not being rendered, so you see the sky instead.
Usually when one needs gradual alpha transparency, one has those parts in a separate model and shader without ZWriteEnable. This means you might get sorting errors, but at least they'll only be on the transparent model. Alternatively, if you just want to have some parts completely transparent and some completely opaque, you'd also have "AlphaTestEnable = True;" to allow rejection of pixels with low alpha, set "AlphaRef" to a value below which pixels will be rejected, have "AlphaTest = GREATER;" or "GREATEREQUAL" so that we keep pixels whose alpha is higher than AlphaRef, turn off alpha blending with "AlphaBlendEnable = False;" and keep "ZWriteEnable = True;"