IMO it looks like a timing issue. Not sure on the MSD dist but I would start there. It seems the engine is advancing the timing normally when you rev it up but goes to hell when returning to idle. As in it loses the reference point for spark. Might want to pull the dist and check the gear then swap in a sub-dist to see what happens. If it still surges after the dist swap and carb swap then it has to be internal (timing chain etc.) p.s. just noticed the msd box, I would bypass that first!
I think you are on the right track.....I'll guess something in the centrifugal timing advance. The plate will not move around, but the centrifugal advance could be sticking. There should be a felt pad under the rotor button where you can place a few drops of oil. May need to be disassembled if there is a burr and smoothed with some emory cloth. You should be able to grab hold of the rotor button and turn it about 10 degrees clockwise (advance) and it should snap right back to where it was. Don't know what is inside a MSD dizzy but the duraspark distributors have a tiny metal tab that holds the spring on the centrifugal weights that will fatigue and bend over time. It will remove the spring tension and the timing weights will bounce all over the place when the engine is revved . Cleaver