All I know is when stepping through it, it called the Mob function instead of the client method. Wasn't binding to the right method, I haven't programmed much in C++ and consider myself a beginner in the language, so I can't really prove why you had to, just that I had to to make it work. Its very possible its something else that i might have done wrong.
Another Bard fix I tested in EQLive and crouching did not stop my singing so in client_packet.cpp Line #1689 I changed to
Code:
if(!UseBardSpellLogic())
InterruptSpell();