Separate the visor into its own translucent material and set the body material to opaque.
This is not a normal problem. The hint is in your description: It looks fine when the material is set to opaque.
When rendering translucent materials the mesh has to be sorted to render translucency correctly. The problem is meshes often will not sort correctly and you will end up with pieces being rendered in the wrong order. The easiest and most performant way to resolve this is to use translucency sparingly and never try to combine your opaque elements with the translucent pieces in the same material (which is what you did). Another option (which is great for performance but has visual artifacts) is to use an opaque material with dithered translucency.