I think I've got him. I've ordered and downloaded the naval record casalguidi found and it fits - sort of.
"Semmens, William, 116984, 1865" PIC No 396791
DoB 3rd Jan 1866 right day, right month, wrong year, but, as you say, it fits with age 35 in 1901 census.
Birth place Strood, Kent - NOT Southwark, Surrey
The earliest entry is 23rd Dec 1881, just before his 16th birthday (not 13th)
He wasn't demobilised till 9th July 1919, so no civilian dockyard employment before then, my late grandmother (his wife's niece) thought he had left the navy by the early 1900s)
He made CPO in April 1899 - check
On board HMS Andromeda 1/3/04 to 16/7/06 - coincides with Russo-Japanese war and relief of Port Arthur.
No mention of Royal Oak, but was on Royal Arthur
He served on several other ships including Excellent, Resolution, Wallaroo (?!!), Duke of Wellington, Fire Queen (Special service vessel, onetime tender to DoW) etc.
"Joined Royal Fleet Reserve Portsmouth 25 May 09"
Thereafter he was on Victory 1 (Nelson's ship, still afloat till 1914 used as a barracks) Halcyon, Cyclops, MFA Barca(?)(Lock Royal), back to Victory 1 and finally Vernon.
RFR - does that mean he was mostly shore based? At least in peace time and could have been in charge of part of dock yard.
From the 3rd Jan to 30th June1893 he was on Excellent and from 1st July to 18th November 1893 he was on Vernon (isn't this a shore base?) I have him getting married in the middle of this period, June 1893.
There doesn't seem to be an entry for him for 1Q86 in FreeBMD