I would start by stating that the medium (cinema) used by Zeffirelli is radically different from that Shakespeare thought of when he wrote Hamlet (the theatre). Cinema has different techniques and a different, faster pace in its narratives than theatre has. So we cannot take a scene-by-scene faithfulness to the text as the main criterion to judge the film's achievement. Right from the beginning, the film offers itself as a heavily edited and re-arranged version of the tragedy. It does not open with the traditional appearance of the father's ghost, but with a funeral scene that is not in the text. However, the scene is instrumental in setting the entire atmosphere of distrust that will characterize Hamlet's relationship with Claudius. In addition, the entire subplot concerning Foternbras is removed. Yet, in spite of the cuts to fit the four-hour long play into a two-hour Hollywood film, the screeenplay maintains its coherence and the film is entertaining. So the film is successful because, while it makes several changes and moves around several lines of the original text, it retains a coherence in its narrative and communicates the underlying philosophy of the text to modern audiences. The same compromise is reflected in the cast where Hollywood stars such as Mel Gibson and Glenn Close are cast against British theatre actors like Alan Bates, Paul Scofield and Ian Holm.
I think this review could be a useful model: