The uniform of Major Malloy is wholly incorrect. The Royal Marine (RM) Lovat uniform has dulled buttons and is worn with the green beret, rather than the peaked cap. The crown rank insignia is incorrect and the uniform is missing the RM flashes and the globe devices. Finally, even an experienced marine would be unlikely to have so many medal ribbons.
Sailors in the Royal Navy are not paid in dollars on ship because "dollars are accepted in every port". The British Navy pays in British currency and the sailors use the currency exchange, like everyone else.
Apart from the fact that the US dollar is not legal currency in most countries, the idea that the Navy is working out exchange rates for everyone's pay is absurd.
Major Malloy's uniform is not British Royal Marine. The uniform used is reminiscent of WW2 United States Army (i.e.: brown) RM service dress is Green Lovat with bronze Badges and buttons. Parade Dress - Dark Blue with peaked cap of white with a red band. The crown insignia used on Major Malloy's shoulder epaulets is not of British type, but resembles that used by officers of the Jordan military, but not majors.
The Royal Navy ship seen is not a type used by the Royal Navy, but is a US Navy destroyer.
Whilst it is correct that the Union Jack would be flown at the bow when docked, a second one would not be flown from the masthead amidships, as a later shot shows - instead a White Ensign would be flown at the stern. Once under way, the Union Jack would be removed and the White Ensign transferred to the masthead.
The fictitious Drake Hotel shows up on McGee's computer as "1400 Constitution Av. SW". Constitution Av. doesn't have any south west addresses, it runs east-west, from NE to NW.