Disciplined oscillator using counter+micro
It's extremely difficult to find a microcontroller on the market these days that does not have some kind of counter/timer module built into the chip &mdash; usually they have several, because they are so universally useful. And unless you pick a very small, low-power &micro;C, it will have no problem counting at 25 MHz.

If the hardware counter does not have enough bits, use it as a prescaler and do the rest of the counting in software. Use the counter overflow interrupt to increment a software counter, and combine the results as needed.

So, just connect your oscillator to the counter clock input, and configure the counter to free-run. Connect the GPS 1 PPS signal to an interrupt line. Each time the interrupt fires, read the counter. Subtract the previous reading from the current reading to find out how many oscillator cycles have elapsed in the current GPS second (accounting for roll-over, of course). Use this value to compute the next control voltage update.

And you will want to do this every second. Trying to average the count over hundreds of seconds may seem like a good way to get higher precision, but in fact, it will make the system very slow to correct itself after external perturbations (e.g., temperature and voltage changes).