Is there one wallet that can hold all the different cryptocurrencies, or does the wallet need a separate implementation for each different cryptocurrency?
Wallets need to know how to generate new addresses and check for incoming transactions, and should verify that transactions (and also if possible blocks) are valid, so they will need to know some important information about each coin. Some coins which are simple forks of each other don't require much extra info, just the difference in magic bytes, port numbers, chain parameters, etc. While others which have much larger changes like those with different mining algorithms, different transaction structures, different signature algorithms etc would require more in depth implementation as well. So in general no, a wallet can't trivially accept all currencies, each requires implementation.