Your graph is showing that you're writing a LOT of dedupable/compressible data to the DD, might check your job settings to make sure Veem is doing some of the dedupe and compression work (Enable inline deduplication, Compression level in Job -> Advanced -> Storage tab). Storage optimization might have an effect, but I set mine to largest size to help w/ restores, and it certainly seems to. Smaller block size yielded EXCRUCIATINGLY slow restore times, once I cranked it up they became usable. That was v8, I haven't experimented in v9 to see what difference block size makes. Ours is all still working well, our dedupe devices keep up, compress well, restores are acceptable, so I try to leave well enough alone.
Try having Veeam take off some of the load if you aren't already, and I can confirm when two DD's suddenly have some data to replicate, they will drive up their link to each other. Our saturates a 500Mb link after a backup job has ran.
Veeam B&R v9
Dell TL2000 via PE430 (SAS)