I found the easiest way to get round this problem is use Case's tag to copy the tags in my files to APEv2 tags. You can do this to your entire mp3 collection in a single step using the following command line:
CODE
tag.exe --recursive --force id3v1 --force ape2 --tofilen "tag log.txt" "D:\My Music\*.mp3"
This will tag every mp3 within "D:\My Music" and ALL SUBFOLDERS based on the existing tags and log the changes to "tag log.txt". I would recommend you test this on a unimportant folder before applying it recursively to your entire collection like this. But it worked for me.
The advantage of this method is that you don't lose anything: you still keep your id3v1 and id3v2 tags for use in your portable player. And the music is mp3gained rather than simply having the ReplayGain tags from foobar, so it will play at the correct volume in your portable too.
However, despite this workaround I would still like to add my support to the initial feature request in this thread. Rather than foobar2000 not reading other tags if it finds the preferred tag, IMHO it would be better if it would do this on a field by field basis. This is what Case's Tag does already: if I have a file with an apev2 tag that only contains the Replay Gain and mp3Gain values and it also contains an id3 tag with the artist and title, then Case's Tag will display all of these values. Whereas fb2k only shows the apev2 tag values. Of course if both tags contain an artist field (for example) then the software has to prefer one over the other. But not if the tags contain different fields.