have you tried the FREE_PRIVATE() in BotCreate() ?
Code:
if (pBot->pEdict->pvPrivateData != NULL)
FREE_PRIVATE (pBot->pEdict); // free our predecessor's private data
pBot->pEdict->pvPrivateData = NULL; // fools the private data pointer
pBot->pEdict->v.frags = 0; // reset his frag count
however I'm not sure if this will work. If this doesn't work then I think it's just engine internal.