hm,

for the priest i would try to do the /castrandom before the /castsequence like:
Code:
#show Mind Flay
/stopmacro [channeling]
/cast [nostance] shadowform
/target
[target=target, harm, exists, nodead][target=party4target, harm,
exists, nodead][target=party1target, harm, exists,
nodead][target=party2target, harm, exists, nodead]
/castrandom Devouring Plague, Mind Blast, Shadow Word: Death
/castsequence
reset=target/combat Vampiric Embrace, Shadow Word: Pain, Vampiric
Touch, Mind Flay, Mind Flay, Mind Flay, Mind Flay, Vampiric Touch, Mind
Flay, Mind Flay, Mind Flay, Mind Flay, Vampiric Touch, Mind Flay, Mind
Flay, Mind Flay, Mind Flay, Fade, Vampiric Touch, Mind Flay, Mind Flay,
Mind Flay, Mind Flay, Vampiric Touch, Mind Flay, Mind Flay, Mind Flay,
Mind Flay, Vampiric Touch, Mind Flay, Mind Flay, Mind Flay, Mind Flay
perhaps another ',' after 'Shadow Word: Death' is needed, not sure.
Another thing im not sure is if the way you do your targeting, works realy in combination with reset=target, because it may be that it resets its target every time.
If this is the case you can fix this with using /assist... instead of /target.

What might help is if yeh change yer castsequence not to reset on target/combat but on time depending on yer longest cooldown spell

like
reset=30 Vampiric Embrace,Devouring Plague, Shadow Word: Pain, Vampiric
Touch,Mind Blast, Mind Flay, Mind Flay, Mind Flay, Mind Flay,Shadow Word: Death
This doesn't work, because the 30sec aren't count from your first activation of the castsequence, but is resetting every time you activate any spell in the castsequence and hence can't be used to reset exactly afeter 30sec.

For the warlock:
as above do the /castrandom Chaos Bolt before the castsequence (and perhaps its /castrandom Chaos Bolt,)