Added this above did fix it.
Code:
if (target && !hate_list.IsEntOnHateList(target))
target = nullptr;
So what are we doing here? What is the current target causing the error? I am guessing it is the charmed underwater mob that just died? The question though is why it only seems to happen when the charmed mob is underwater and the client is not.
Either way I am very appreciative it is fixed but I would really like to know more about what the cause was. If I am going to continue to learn the source I have to dig my heels in.