If you are using a new address for each transaction then I'm not sure why you would want to keep all the legacy addresses, but assuming you do here is at least one method:
- Start up your "legacy" Bitcoin-Qt.
- Click the "Help" menu option.
- Choose "Debug window" from the drop down menu list.
- Choose the "Console" tab in the Debug window.
- In the Console, enter: listreceivedbyaddress 0 true
- Write down (copy and paste into a document?) without any mistakes all the listed addresses.
- For each address, enter the following in the Console: dumpprivkey address
- Write down (copy and paste into a document?) without any mistakes each private key.
- Shut down your "legacy" Bitcoin-Qt, start up your "new" Bitcoin-Qt.
- Click the "Help" menu option.
- Choose "Debug window" from the drop down menu list.
- Choose the "Console" tab in the Debug window.
- For each private key, enter the following in the Console: importprivkey private_key "Label"
Assuming I haven't made any typing errors in those instructions, this should import all the private keys and associated addresses from the "Legacy" wallet into the "New" wallet. Note that if the Label you use on any of the addresses have any spaces or special characters, you have to enclose the Label in quotes. Safest to just always enclose the Label in quotes so you don't have to try and remember when you need them. It doesn't hurt to use the quotes when they aren't needed.
As each new private key is imported the wallet will scan the entire blockchain to see if there are any bitcoins associated with the new address. This may take a while.