The ASN is suppose to move smoothly through the cylinder nozzle, but not loosely. Have you slightly lube the cylinder nozzle with silicone lube to promote better seal?
I think we might be looking at the wrong angle here.
Is your piston still have all the teeth intact (not stripped), especially the last tooth nearest to the piston head? Losing one tooth there is equivalent to losing around 30fps in my experience in short-stroking. I am having doubts as to whether this is the case due to your MS100-like spring, but any idea is better than none.
You should check your bucking too. There might be a slight tear where air can escape.
Is your inner barrel cleaned to a mirror finish? Dirty barrel can cause fps drop, as much as 30-40fps based on my experience.
Plus you can really help me by posting pictures of the air-seal nozzle and other parts of your AEG internals, to help you.