With JP1, you can improve the way you use the memory that is there.
IIUC, you have a few learned keys for each of several devices (implying you have a working setup code for each device). You don't have enough total learning memory for all the signals you want.
With JP1 you can look at decodes of your learned signals. In most cases that is all the info you need to redefine each learned signal as a KeyMove. KeyMoves are smaller and use a different section of memory. So if you have a little free space in the KeyMove area, you can use it to free up a lot of space in the Learned Signals area.
If your KeyMove area is also full, you can probably free up KeyMove space by defining device upgrades. Or you could convert all your learned signals to KeyMoves and install extender software that converts most of your learned signals memory to KeyMove memory. Since KeyMoves are smaller you end up with much greater effective capacity.
For more specific instructions about all of this, you should ask in the JP1 forum. It may help to post your .ir file in the diagnosis area.