I don't know if anyone else has solved this yet, I've just seen lots of discussion asking how. The retail game cartridge for SoulSilver (and presumably HeartGold) are built differently from other cartridges, to accomodate the IR communication. Consequently the normal methods for extracting the save files don't work. I.e. the wifi and 3in1 backup tools cant find / identify the save, and the USB hardware NDS Backup tool will tell you it's found the save (but identify the size incorrectly) then it will only copy out 1MB of nulls.
I've taken apart my SoulSilver cartrdige to map out how it's set up. In normal cartridges, edge-connector pin 6 is the /CS signal for the EEPROM. See here for details: http://files.darkfader.net/ds/files/cartridge.txt
Toggling that line low gives you access to the EEPROM chip. In the SoulSilver cartridge though, pin 6 doesn't go to the EEPROM but instead it goes to the small MCU. My assumption is that the game is coded so that the /CS EEPROM signal is used to toggle both the eeprom and the IR device with that MCU handling the logic.
Normal backup tools can't handle this, they don't know how these cartridges access the save data. However, my solution is very simple albeit requiring hardware hacking.
All I had to do was identify which pin on the EEPROM chip was /CS (it's pin four). Then I soldered a jumper wire from the edge connector pin six to the EEPROM pin four:
Once this was done, I was able to use the NDS Backup Tool and this time it successfully recognized the save as 4Mbit, and copied out properly. I was then able to use that .sav file on my flashcart (Acekard 2i with AKAIO 1.6rc). Furthermore, I was able to take the save file back and write it back out onto the retail cartridge, using this same setup.
Once the save was written back out to the retail cartridge, I simply removed the jumper wire and re-assembled the cartridge. I was then able to continue the game on the retail cartridge & use the pokewalker etc.
If one wanted to make this more elegant, it'd require soldering a SMT microswitch next to the IR transceiver, cut a hole in the top of the cart, then use the switch to control the /CS EEPROM line so you could switch it on or off without having to take things apart and resolder every time you wanted to read/write the save data... too much work for me I think.
Anyhow, as I said, I don't know if anyone else has solved the problem but figured I'd share my results. For me, the important thing is being able to backup my game save data - I'm continuing to use the retail cart so I can play with the pokewalker.