This re-write changes the method of evaluation of the dynamic variables simply due to the fact that I have a hard time working with dynamic variables using the method that you have used (which is also the method shown in the help file).
Code:
on *:TEXT:!nurse*:#:{
  if (Pup isin $($+(%,p,$nick),2)) {
    inc $+(%,$nick)
    msg $chan 15,1 $+ $nick suckles from their mother, $($+(%,mother,$nick),2) $+ . $nick $+ 's HP is now $($+(%,$nick),2) $+ .
    dec $+(%,$($+(%,mother,$nick),2))
    msg $chan 15,1 $+ $($+(%,mother,$nick),2) now has $($+(%,$($+(%,mother,$nick),2)),2) HP available for her pups.
  }
}