Yeah, I've noticed that some very abrupt volume changes can sometimes be smoothed out slightly by certain players. From what I read in your post, you tried to use the volume fade command and that didn't work. I haven't explored this command much though but I do know it tends to produce crackling especially with long/deep fades because the granularity isn't very good as was said.
Simply using gain ($ed $80 $xx) where xx is from 00 to 7f isn't going to work either because values in that range change the channel gain to that value instantly which causes a glitch/crackle, similar to v. The SPC does have gain fades though, which are much smoother than volume fades, even at their fastest settings which seem to be pretty fast so I'm pretty sure you can do what you're trying to do without crackling. You can use gain fades with $ed $80 $xx where xx is >7f. Unfortunately AMK isn't sophisticated enough to do anything complex with gain fades unless you do it manually of course. Remote codes can help a bit but it is still a mess sometimes.
I'll link you to the official sticky thread on these forums which addresses gain, and then I'll attempt to explain it. I'm visually impaired so am unable to make heads or tails of the diagram on that thread but I imagine you will find it useful. Here you go
Now for my explanation. Basically there are four types of gain fade, two fade out types and two fade in types (can't remember what/where they are right now). Each type has 16 fade speeds (80 to 9f, a0 to bf, c0 to df, e0 to ff). And the bottom speed in each slot stops any fades and holds the gain where it's at.
Now here's the catch. The reason I said things can get messy. Gain fades don't play nice like volume fades. With a volume fade you specify fade duration and target level. With a gain fade you set xx to the appropriate speed and fade type as I described above, and if left unattended, the gain will either fade down to 00, or up to 7f. Now sometimes that's okay for simple attack/release settings but if you want more control over it, and it sounds like you do from what I'm reading of your question, then you'll have to use additional gain commands to control the fades to make it do what you want. It's pretty hard to control. I wish we could have gain envelopes for this sort of thing, similar to remote codes but more flexible/deep.
BTW if you do end up using gain and get it working with remote codes I'd love to see how you're doing it, since I've been meaning to experiment with gain more but due to its slippery nature with all but the simplest of tasks, I just haven't used it to the potential I'd like to.
Make more of less, that way you won't make less of more!