PWM frequency not what I expected

I think the problem may be that you forgot to clear the registers before OR-ing in the bits you want set to 1. If one of the clock select bits is already set you may be getting a prescale of 64 instead of 1. That would give you about 390 Hz instead of 25 kHz.

Note: Your comment says "//Set WGM1 bits 3:0 to 0b1110 corresponding to "Fast PWM" with Top set to the value stored in OCR1A". The comment shows the value 14 (0b1110) but the description is for Mode 15. It looks like you are setting the right bits, though.

16000000 / 25000 = 640, but remember to subtract 1 and use 639.