The problem was with the fact that, no matter what weapon I was wielding.
Code:
if (Weapon->ItemClass == ItemClassCommon)
return BasicBonus;
Was always returning true, and never allowing anything but BasicBonus to be returned. Adding it as you stated should solve that problem. Thank you.