as far as i know, here are some notes:
1. in above FM circuit, the C5 and L1 making tank ckt oscillating to generate carrier frequency, now to change the o/p freq, either C5 or L1 or any other external reactive component in vicinity of tank ckt needs to be changed to change the resonant frequency.
2. The change should be fast enough to settle for any time delays between input voltage change to o/p freq change.
3. transistors are not ideal, so they have stray capacitance and inductance (very negligible), between CE, CB and BE. These capacitance changes based on four major parameters viz. temperature, i/p voltage, current and frequency.
4. In above circuit, since the change in capacitance is very small, the Q2 also amplifies the signal as there is some positive feedback in circuit, but the amount of power generated is very low.
5. The above circuit is good for u, but while frequency changeover happens, the transient response of circuit may create overshoot or undershoot, depending on o/p reactance and resistance, making time constant. Also, the transition will bring some intersymbol interference since, morse code is binary code, so u need to keep at least 2 cycles for lowest frequency.
6. Make sure, the dot time size of morse code is more than twice the lower frequency of circuit and u r good to go with same circuit. Also, ther are losses in reactive components.
7. find resonance with (2*pi*C5*L1)^-1. Apply 0V at input to find lowest frequency.
8. Since, u r only interested in extreme frequencies i.e. highest and lowest, FSK is good for u and morse code can be easily transmited using FSK.
9. Use any 8-bit MCU like PIC18F series and store one complete cycle of 2 frequencies viz, lets 300kHz is carrier, so ur logic 0 will be (300-10)kHz and logic 1 is (300+10)kHz.
10. When i/p is logic 0, u must send at east two cycles of low frequency to account for intersymbol interference; u can accurately control the phase from where u can start the cycle, the DAC or PWM will convert it into analog sinusoidal wave.
11. At detector simply convert input sine wave to square wave using comparator and send the square wave input to capture in CCP module of microcontroller to find the period of one cycle, if period is highest, then its logic 0 otherwise logic 1.
12. There are other than BFSK techniques (like BPSK, QPSK, OFDM, QAM etc.) u can use in same microcontroller, with software change, no need to change the hardware.
This is all i have, hope that helps.