Err...
There are two kinds of instrument data - one that leads directly to the wav, and the other that leads to pointers that lead to seperate wavs.
The kind with 3 rows, the second being the offset, has the offset to the actual wav itself. This is used with instruments not used often.
The kind with 4 rows, with the second and third being offsets, has the first offset to other offsets (which in turn leads to the instrument data), and another offset to God-Knows-What (its the same for all of these). So, obviously, you want to go to the first offset, then bookmark or something, then go to each of the offsets and change the instrument from there.
AFTER FOLLOWING THE OFFSET:
NOTE: Don't forget it's the same instrument - don't set one as a Kalimba and the other as an Oboe, or else the track will switch between Kalimba and Oboe. Usually what I do is I set both of the offsets the same, then I change the wav.
With the whole adding instrument thing, what you want to do is locate an empty spot for instrument data. They all look like this:
013C 0000
0200 0000
0000 0F00
There's a ton of them, so that shouldn't be a problem.
Anyways, go there, and set it to:
003C 0000
XXXX XX08
FF00 FF7F
In which the X's represent the offset to the wav of your instrument. If done correctly, the instrument you added should play in Sappy. You don't necessarily have to add it as the corrosponding instrument - in one of my voicegroups, the tuba is actually a nylon guitar!
For example, let's say I wanted to transfer GS:TLA's Pan Flute. This instrument is located at 0x81E4664 in GS:TLA, so I copy and paste that into some freespace, like 0x8800000. Now, I go to a voicegroup, for example, the Regi Battle voicegroup at 0x845019c in Ruby, and I go to a blank spot. It doesn't matter where you put it, but it helps if it's in an easy to count place, such as 0x02 (Electric Grand) or 0x03 (Honky-Tonk). So, I'll just type in
003C 0000
0000 8008
FF00 FF7F
on the third or fourth row (the first is 0x00, which is the drumset; second is usually Bright Accoustic)
Now, I have to make sure that my track uses the same instrument as this. Go to the offset of the track that you want to play the GS:TLA Pan Flute on. There will be some bytes (I'm using the first track of the Regi Battle as an example; the offset is 0x86ACA58) that will form a formation like this:
BC00 BB50
BD30 BE50
Don't mess with any of the bytes except for what I bolded. Change that to the number instrument that you added. If Sappy plays that track at all, that means you did it right!
Now we test it in the Rom. If it plays the Pan Flute, then you're good to go!
One small note: The Pokemon Music switches from instrument to instrument, which is rarely seen in both GS games. If you're transfering new songs in, that shouldn't be an issue, however...
Just remember that the Pan Flute, like many of GS's instruments, is offseted differently from Pokemon's, so you might have to adjust the octaves. If you want me to tell you how to do that, just ask!
...You know, it could be possible to completely pitch all of the old voicegroups and make one nice, compact voicegroup with all the instruments. Then we wouldn't have to deal with all this crap with changing voicegroups and stuff. It would be quite a bit of repointing, however...
...But you'd get a ton of freespace from doing it! But don't try it untill I mess around with it in my hack first. I don't want you screwing up your hack by mistake.