I never actually played 4 swords (what with it requiring 3 other people to play), but in Sappy at least, it plays back significantly crisper.
The main notable thing is that it has half the normal number of ticks per measure (96 as opposed to the midi standard 192).
This is why the tempo value gets halved, and why modulation values need to be halved when porting down from DS or up from GB, because both of those systems work on a 192 tick measure system.
The M4AA engine is very bad at modulation at high speeds (see the utter failure of it to correctly play back the GSC Rocket Hideout as an example).
Finally, it doesn't seem to have any obvious way to control the noise channels, unlike the GB, although it may simply be a case of finding the right conversions, and the engine has nothing to do with it.
As it happens, through debugging I found a set of somewhat random looking numbers accessed whenever the game uses a noise track on GSC. I suspect these numbers may be related to what you're talking about in that they set how the noise track is played.
I haven't yet found the same table on RBY, but through debugging, I should be able to find it.
As to porting it over to the GBA, I don't know. You managed by doing a sort of "by ear" conversion, so perhaps it would be useful to start from there?
Also, I am having severe issues with the modulation in one particular song from gen 2. The Team Rocket hideout has such a high modulation rate (127, the max value!) that the whole note becomes distorted, rather than producing a smooth note like the GBC. Any thoughts?
My plan was to have note length just be a decimal value between 1-192, and on compilation, the tool would calculate if a frame delay change was necessary, and if it was, insert the command, followed by the note. I was going to try to hide this complexity from the end users, if at all possible.
From my immediate rationalisation, I worked out that the max values of frame delay and note length would be 0xC and 0xF respectively. These 2 values combined give the maximum note length of 192 in GBC note architecture. This also means every note value in this range is covered.
In terms of other commands, they would take the obvious necessary parameters, it would be up to the too to rationalise them so that they make sense when played back on the GBC.