I think I found the problem. This table in the ATimerDefs.h file of the PWM library doesn't match the defines in Arduino.h:
//4 bytes each, 18 elements, 72 Bytes total
const TimerData timer_to_pwm_data[] = {
{0, 0, 0, 0}, //NOT_ON_TIMER
{0, 0, 0, 0}, //TIMER0A disabled when initialized
{OCR0A_MEM, OCR0B_MEM, TCCR0A_MEM, COM0B1, false}, //TIMER0B
{ICR1_MEM, OCR1A_MEM, TCCR1A_MEM, COM1A1, true}, //TIMER1A
{ICR1_MEM, OCR1B_MEM, TCCR1A_MEM, COM1B1, true}, //TIMER1B no C channel on timer 1?
{0, 0, 0, 0, 0}, //TIMER2
{0, 0, 0, 0, 0}, //TIMER2A disabled when initialized
{OCR2A_MEM, OCR2B_MEM, TCCR2A_MEM, COM2B1, false}, //TIMER2B
{ICR3_MEM, OCR3A_MEM, TCCR3A_MEM, COM3A1, true}, //TIMER3A
{ICR3_MEM, OCR3B_MEM, TCCR3A_MEM, COM3B1, true}, //TIMER3B
{ICR3_MEM, OCR3C_MEM, TCCR3A_MEM, COM3C1, true}, //TIMER3C
{ICR4_MEM, OCR4A_MEM, TCCR4A_MEM, COM4A1, true}, //TIMER4A
{ICR4_MEM, OCR4B_MEM, TCCR4A_MEM, COM4B1, true}, //TIMER4B
{ICR4_MEM, OCR4C_MEM, TCCR4A_MEM, COM4C1, true}, //TIMER4C
{0, 0, 0, 0, 0}, //TIMER4D
{ICR5_MEM, OCR5A_MEM, TCCR5A_MEM, COM5A1, true}, //TIMER5A
{ICR5_MEM, OCR5B_MEM, TCCR5A_MEM, COM5B1, true}, //TIMER5B
{ICR5_MEM, OCR5C_MEM, TCCR5A_MEM, COM5C1, true}, //TIMER5C
};
There are 19 defines in Arduino.h, including Timer1C which the PWM library skips. This will cause your Timer3A pin (Pin 5) to land on the Timer2B (Pin 9) entry in the PWM library. Look at Pin 9 to see if your signal is there.
#define NOT_ON_TIMER 0
#define TIMER0A 1
#define TIMER0B 2
#define TIMER1A 3
#define TIMER1B 4
#define TIMER1C 5
#define TIMER2 6
#define TIMER2A 7
#define TIMER2B 8
#define TIMER3A 9
#define TIMER3B 10
#define TIMER3C 11
#define TIMER4A 12
#define TIMER4B 13
#define TIMER4C 14
#define TIMER4D 15
#define TIMER5A 16
#define TIMER5B 17
#define TIMER5C 18