The answers to your questions depend on which CPU you're using, which you didn't say. I assume it is one of the MCF51 series as they're the ones with the "Flex Timer"..
It can't be the MCF51AC as that has the FlexTimer, but doesn't have DMA.
According to the Product Summary, the MCF51AG128 is the only one with DMA.
(1) DMA
Is your "700Hz clock" starting a burst of DMA or is is triggering one 16-bit word at 700Hz? I'm guessing the latter, or it doesn't make much sense.
The DMA controller should only be transferring one word at a time. If it is getting away from you and starting a "burst" it might explain your problem. You may have a software bug with the DAM programming. Try disabling it before reprogramming for the next burst. Does the DMA controller have programmable priority in this chip? Is there a "crossbar switch" like there is in the higher chips?
(2) FlexTimer
Program a pin as the output of a FlexTimer channel and watch it on an oscilloscope. Maybe you can connect a FlexTimer output back to another timer in input capture mode and actually measure the FlexTimer period to the microsecond.
(3) Circular Buffer.
Yes. You should do that. Time to learn. This is stuff you need to know. Obvious starting point:
Circular buffer - Wikipedia, the free encyclopedia
Follow the "Bip Buffer' link too. Other obvious places - just ask Google to find you code with "circular buffer" in it.
You should probably use a "ping pong buffer" rather than a circular one though. Again:
http://en.wikipedia.org/wiki/Ping-pong_buffer#Page_flipping
Assuming you've got an MCF51AG, then the DMA controller doesn't seem to support the "Buffer Chaining" that more sophisticated controllers can. You're just going to have to design your software and hardware to absolutely guarantee you can respond to the DMA Interrupt within 1/700th of a second.
(4) Beating Level 7?
Do you have a debug pod connected?
Don't use level 7. It can get you into all sorts or trouble. Use Level 6 and then find, eliminate or minimise any places where you disable interrupts in your code. If you do have any "disable interrupt" code, you should replace it with code that only elevates the priority "as high as necessary". For instance, if you have an interrupt driven serial port interrupting at IPL4 then the serial driver code should only raise the CPU to Level 4 when manipulating the buffer pointers in the mainline.
Diagnosing.
You should find out what the "strobe on the output" is. Are the LEDs being forced on for a time or off for a time? How long? Measure it (get an Oscilloscope). Is it "expected data" or is it running off the end of your buffer and sending data you don't expect to be sent? You should fill your buffer with a "known pattern", say the values 0-511. When sent the leds should blink in a binary counting sequence. You should also put a "known pattern" in the memory after the buffer in case you are getting an "overrun". When it goes wrong you might be able to see what's happening. If you can't get an oscilloscope, record the LEDs with a camera in movie-mode and then see if you can play the movie one frame at a time to see what is going wrong.
Tom