even though I'm sure CD found them all, I'll just post everything fixed:
zones/groups.cpp
lines 594-597
	Code:
	#ifdef GROUP_BUFF_PETS
			if(caster->GetPet() && caster->GetAA(aaPetAffinity))
				caster->SpellOnTarget(spell_id, caster->GetPet());
#endif
 change to
	Code:
	#ifdef GROUP_BUFF_PETS
			if(caster->GetPet() && caster->GetAA(aaPetAffinity) && !caster->GetPet()->Charmed())
				caster->SpellOnTarget(spell_id, caster->GetPet());
#endif
 lines 604 - 607
	Code:
	#ifdef GROUP_BUFF_PETS
				if(members[z]->GetPet() && members[z]->GetAA(aaPetAffinity))
					caster->SpellOnTarget(spell_id, members[z]->GetPet());
#endif
 change to
	Code:
	#ifdef GROUP_BUFF_PETS
				if(members[z]->GetPet() && members[z]->GetAA(aaPetAffinity) && !members[z]->GetPet()->Charmed())
					caster->SpellOnTarget(spell_id, members[z]->GetPet());
#endif
 lines 633-636
	Code:
	#ifdef GROUP_BUFF_PETS
			if(caster->GetPet() && caster->GetAA(aaPetAffinity))
				caster->BardPulse(spell_id, caster->GetPet());
#endif
 change to
	Code:
	#ifdef GROUP_BUFF_PETS
			if(caster->GetPet() && caster->GetAA(aaPetAffinity) && !caster->GetPet()->Charmed())
				caster->BardPulse(spell_id, caster->GetPet());
#endif
 well I think you get the idea, but here is the rest of the line numbers
in zones/groups.cpp on line 644
in zones/raids.cpp on lines 413, 424, 592, 603
in zones/spells.cpp on lines 1561 and 1569
the rest in groups and raids are the same (it's the same two statements), for spells it's a little different, for line 1561 change
	Code:
	if (GetPet() && GetAA(aaPetAffinity))
 to
	Code:
	if (GetPet() && GetAA(aaPetAffinity) && !GetPet()->Charmed())
 and on 1569
	Code:
	if (spell_target->GetPet() && GetAA(aaPetAffinity))
 to
	Code:
	if (spell_target->GetPet() && GetAA(aaPetAffinity) && !spell_target->GetPet()->Charmed())
 these should be all correct, but I don't have a means to test them