Der PLL soll schnellen Frequenzänderungen ja nicht folgen. Da ist die Filterauslegung nicht so schwer. Wegen dem einfacheren Teiler sollte der PLL mehr so etwas wie mal 64 machen.

Das Digitale Signal vom DDS hat viel Jitter. Besser wird es hinter DA Wandler und Tiefpaß. Den DDS sollte man nicht ganz mit der maximalen Frequenz nutzen, sondern etwas Reserve lassen für den Tiefpaßfilter.
Der PLL kann vieles an hochfrequentem Jitter rausfiltern, aber natürlich nicht alles. In der analogen Darstellung sollte der DDS kein sichbares Jitter haben, sonst ist da noch was nicht OK am Code.

Wenn man dem DDS im Interrupt laufen läßt ist es gar nicht so einfach Jitter zu vermeiden, es geht aber. Eine Methode dazu ist es 2 Interrupts kurz hintereinander auszulösen: der erste unterbricht das Hauptprogramm, gibt interrupts wieder frei und macht dann nur noch ein paar NOPs. Dann kann der 2 te interrupt etwa 6 Zykelen später erfolgen und die eigentliche DDS routine ausführen. Man springt dabei gar nicht wieder in den ersten Interrupt zurück, sondern gleich wieder ins Hauptprogramm. Da man damit schon recht viel Zeit verliert, sollte man in einem Interrupt gleich z.B. 4 DDS-schritte rechnen und die Ausgaben dann passend verteilen, z.B. alle 20 Zyklen. Der Interrupts kommt dann nur alle 80 Zyklen. Die restlichen etwa 5% an Rechenzeit die noch fürs Hauptprogramm übrig bleiben sollten schon ausreichen für die Steuerung.

Ich würde mal schätzen, dass man im Interrupt auf eine Abatsrate von etwa 800 kHz kommen kann. Damit wäre die maximale sinnvolle Ausgangsfrequenz etwa 200 kHz.