My model looks fine in blender but does not render all faces in Unity
The model is only loosely connected, and the top face is completely separate from the rest of the model. You can see for yourself by selecting the object's faces in Editor mode and dragging them away:




Since the faces aren't properly joined together, Blender is unable to recalculate the normals because it can't find any edges joining faces that are pointing in opposite directions.

You can fix this very easily. First select the entire mesh in editor mode and apply Remove Doubles. Then recalculate the normals again.