A
long time ago I wrote a script to do something similar, including copying over tags-metadata, or as much as the target format supports. Here it is for reference:
[Script] Convert flac to (almost) anything. If you're starting from track-per-file it should do what you want. If you're starting from a single file + cuesheet and want track-per-file output, it doesn't do that, it would need to be modified.
But this was a long time ago. There are probably much better ways of doing this nowadays that I'm not aware of.
It uses several helper programs, and their options could have changed between then and now so that's a potential source of bugs. Also, back then, I was even more of a Bash/shell newb, and there may be glaring errors and omissions I had overlooked.
Test it on a smaller subtree first!. Especially test, if you use accented characters, that all the tags get transferred correctly. It should work on utf8-encoded stuff OK, but I have no idea on other encodings. Ideally,
mount your source files read-only so that any mistakes doesn't corrupt your source files. (I like to have them owned by a different user, and 'su' to that user only when I need to add new music or make edits.)
If you do end up using this and have a lot to do, you might want to try its parallel-conversion capability, outlined toward the bottom of the first post.