There are many integrated circuits (ICs or "chips) that can do these things.
For certain PWM speeds it would be possible to use a shift register to multiplex, just be aware that since you are effectively shifting out values then latching to turn them on, you will be dividing the maximum frequency of the pin that drives them. The same is true for the digital pins you mentioned, but you would need to understand these protocols well enough to write a library (or in place code, doesn't matter) that can clock out the pulses to the pins. Probably not what you had in mind.
A more common way to add a PWM would be with a PWM generator IC. They come in TTL serial, I2C, and SPI types, as well as analog and ones that you set with several pins in parallel. Some already have libraries.
MOSI and MISO are the pins for SPI, it has an intended way of multiplexing. You can use a chip select pin. If you want to use even fewer pins, instead of SS1-3 you could use a counter or a shift register.
For the other types of serial, which either have a clock pin or are asynchronous, you can use addressing schemes, or chip select, depending on your needs.
Here's a little cartoon to (condescendingly) show what addressing is.
**broken link removed**