the only thing i can see that would be causing an issue is that not all bot owners are using the command, as it currently checks for ownership here:
	Code:
	if(botGroupMember && botGroupMember->GetBotOwnerCharacterID() == client->CharacterID()) {
 if you want the group leader to be able to issue the command to all bots in the group, regardless of ownership, you should be able to use this instead:
	Code:
	void Bot::BotGroupOrderGuard(Group* group, Client* client)
{
    if (!client || !group)
        return;
    Mob* leader = group->GetLeader();
    int32   cid = client->CharacterID();
    for (int i = 0; i < MAX_GROUP_MEMBERS; i++)
    {
        if (!group->members[i] || !group->members[i]->IsBot())
            continue;
        Bot*   bot = group->members[i]->CastToBot();
        uint32 oid = bot->GetBotOwnerCharacterID();
        // verify command was issued by bot owner or group leader
        if (cid != oid && client->CastToMob() != leader)
            continue;
        bot->SetFollowID(0);
        bot->WipeHateList();
        bot->Say("Guarding here.");
        if (!bot->HasPet() || !bot->GetPet())
            continue;
        bot->GetPet()->WipeHateList();
    }
}
 it looks like the 
#bot botgroup guard command may have unexpected results when you have a bot-only group whose members are owned by more than one client as well, but that's probably a fairly rare occurrence.