Sure, for hardware you'll need to convert 0-5 TTL (from a microcontroller/UART) to 1v p-p for the A/V audio input. I wouldn't worry too much about input impedence, a simple transistor buffer would do, although I guess a simple voltage divider would be ok. Firstly, convert the 0-5V to 0-1V using a simple voltage divider. Then the output of this through a DC-blocking cap (make it say 10uF) to give you 1v peak-peak AC.
Normally when sending 'digital' over a bandwidth limited analogue channel, one would use pulse shaping, or a low pass filter to cut the high frequency harmonics off the square wave...but thats only if you want to get the maximum possible datarate for the channel. Its usually 15-18kHz, and as I said, 4800 baud would be fine for that, so I wouldn't bother with any form of low-pass filter...the channel will 'round-off' the edges of the sqaure wave anyway.
The receiver, would need an amp preferably with a schmitt trigger as a dataslicer, to get 0's and 1's from the AC signal with the minimum off errors. Again, to keep parts to a minimum, you may be able to get away with a simple transistor buffer.
Now, software. This is a bit trickier because we're sending data over a channel designed for AC, so any DC component will be lost. For this I would recommend using 'manchester encoding' I believe Nigel Goodwin has some excellent tutorials for this. You can use a hardware UART from a microcontroller to do most of the work for you. I would recommend a packet structure like the following:
<preamble><syncheader><payload><endoftransmission>
preamble: say 8 bytes of alternative 1's and 0's. This wil get the UART in the reciever ready for syncronisation.
Sync header: Tells the reciever that the next byte will be data, marks the end of the preamble,
Payload: your data
End of transmission: just tells the reciever its finished sending stuff.
For the reciever...using a hardware UART isn't easy. But, for 4800 baud, it would be fairly simple (again using nigels tutorials) to recieve the data using a PIC micro.
As I said before, you can of course make it more complicated, and increase the datarate, adding error detection/correction, but unless you're sending a hell of a lot of data, its completely unecessary
For example, I've used the 'video' channel in an A/V sender for data, up to 3MB/s 2 level encoding, and 16MB/s for multilevel. The latter was a vastly more complicated.
Hope that helps, I'm sure I read a similar post about doing this on a RC plane model forum somewhere, I'll see if I can dig out the link.
Scott.