A timer can be used to generate a PWM output on multiple pins at the same time. Those PWM signals will have the same frequency, but they can have different duty cycles, which is the main parameter you would be interested in varying to control separate motors.
Even though a single pin on a microcontroller can have multiple possible functions, only one is actually enabled at a time. In the case of using timers to generate PWM signals, that means even though a pin potentially can generate a PWM using two timers, it will only ever actually use one at a time. When you use Arduino’s functions for setting up and commanding pins, those functions take care of making sure pins do not overlap timers in ways that could cause interference, so you probably do not have to worry about them influencing each other.
analogWrite() is the relevant function in the Arduino IDE for generating PWM signals. (Yes, the name could be a little misleading depending on how think about it.) This Arduino language reference page has more information.
As for external encoders (i.e. encoders other than the ones for the included motors), like with your PWM questions the answer is not that simple. There are several pins you might be able to use to read encoder signals, but most of them would probably not work well for that unless you either use slow (low-frequency) encoders or are not doing much else in your program. The best candidate pins for reading encoders are ones that connect to interrupts on the microcontroller, but as with the hardware PWM pins, many of those are also used for other purposes. For example, I/O pins 0 and 1 might be good candidates for reading an encoder, but those pins are also used for the board’s hardware UART Serial, so it would conflict if you also wanted to connect a TTL serial device to the control board.
In general, we expect that these electronics are going to be more complicated for teams to use than some of the other FIRST electronics because they are much less abstracted from the microcontrollers that they use, but I hope that helps provide teams with a deeper learning experience. This “Abstractions” blog post might offer some helpful guidance for how to deal with confusion that often arises from abstractions.