Kind of curious - how many xfer operations are you trying to do during one vblank ?
In each case, are you waiting sufficient time for the preceding one to complete before setting up the next ?
Or are you saying that you set up one - during the first vblank - and it never works again, on the next vblank or whatever ?
(also sounds like a status register may need to be given an acknowledgement).
Unfortunately, I never did VRAM-to-VRAM DMA... but if I had a problem like yours, I'd look for a commerical game that uses it, and use Mednafen to put a watchpoint on all the VDC ports, and see what it does.
UPDATE: also, Develo Assembler is talking about having IRQ on for EX_SPRDMA to work, so maybe it's related ? (ie. IRQ triggered when DMA xfer complete; IRQ service routine should acknowledge somehow ?). If you can read Japanese well enough, it's on page 148 of Develo Assembler manual, in the margin.