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 3.0 Deore XT M730. 1992 Marin Pine Mountain Deore DX M650.
Retro road: 1992 Eddy Merckx Corsa Extra Telekom Shimano 600 STI. 1993 Dyna Tech Ti.
Modern: 2006 Wilier scandium Ultegra 6600. 2014 Wilier GTR Ultegra 6800.