Is there a reason this macro is not working?

#showtooltip
/use [mod:shift,@targettarget] Purge the Wicked
/use [mod:control,@player] Renew
/use [@mouseover,harm,nodead] Purge the Wicked; 
/use [nomod,@mouseover,help,nodead] [] Renew

I am trying to have it cast renew on friendly mouseover then target (friendly) - then purge the weak mouseover then target (harm)
cast on targettarget with shift
cast on me with control

it is giving me intermittent results, and I have made sure there are no conflicting hotkeys

If you’re only trying to perform a single action at a time only use a single /cast or /use

#showtooltip
/cast [mod:ctrl,@player] Renew; [mod:shift,@targettarget,harm,nodead] [@mouseover,harm,nodead] Shadow Word: Pain; [@mouseover,help,nodead] [] Renew

Your current setup and the above macro doesn’t have the ability to SWP/PTW on your current target. If you want that functionality use the following instead:

#showtooltip
/cast [mod:shift,@targettarget,harm,nodead] Shadow Word: Pain; [mod:ctrl,@player] [@mouseover,help,nodead] Renew; [@mouseover,harm,nodead] [harm] Shadow Word: Pain; Renew