If the magnet outer moves independently of the steel hub, even a tiny, tiny bit, then they must be replaced. There is absolutely no repair..
You can actually use the two stud holes in the drive sprocket and put 2 holes in the rotor then lock the two together that way with a couple of threaded pegs.
That's a good idea. ET rotors on BSA twins are secured that way.
Here's another idea. If you have a lathe to work with, you can machine the rotor to make a flat surface for 2 concave lawnmower blade serrated spring washers and sandwich the rotor between the washers. The washers have to be bored to fit over the end of the crankshaft and the rotor nut. The washer grips the aluminum body and not the steel center. This effectively silences the knock but the timing marks, if any, may not be accurate when you're done. But then they weren't accurate anyway if the rotor was loose. I've used this repair several times in the last 50 years but I will freely admit this solution won't be for everyone..
Here's a link for a typical blade washer.http://www.texaslawnmowerparts.com/...e-Cupped-serrated-washer-38-_p_7706.html