The profile on the inside of the bottom sproket has changed recently. (3 ways I have tried to get around this below).
This means that you are tightening the bottom cog onto the free hub, but it will only go so far and not allow the bottom cog on far enough to tighten the whole cassette.
I used a wibbly metal spacer from an old cassette which was just thick enough to allow it to tighten up. You could also substitute the bottom cog for an old worn out 12 and then build the cassette up as a 12 12-28 but the bottom 12 is just a spacer and the 12-28 becomes the 'block'. This would of course mean building a custom cassette, which if you have lots of spares is easy.
The other option, if your bottom cog from the old cassette is not too worn is to put that at the bottom of your new cassette and use it that way.
Of course you could just buy a new freehub body, which will make life much more easy going forward.
Somerset, like 'Heartbeat' with newer cars!
Retro MTB: 1992 Cannondale M1000 Deore XT M730. 1992 Raleigh Dyna Tech Quantum Deore XT.
Retro Road: 1992 Eddy Merckx Corsa Extra Telekom Shimano 6500 Ultegra. 1993 Dyna Tech Ti Campagnolo Athena 8 Ergopower.
Modern: 2004 Wilier scandium Ultegra 6800. 2014 Wilier GTR Dura Ace 9000.