I sorta reproduced it but it only stacked once.
I changed the duration packet function to:
Code:
EQApplicationPacket* outapp;
outapp = new EQApplicationPacket(OP_Buff, sizeof(SpellBuffFade_Struct));
SpellBuffFade_Struct* sbf = (SpellBuffFade_Struct*) outapp->pBuffer;
sbf->entityid = GetID();
sbf->slot = -1;
sbf->spellid = spell_id;
sbf->slotid = 0;
sbf->effect = inlevel > 0 ? inlevel : GetLevel();
sbf->level = 0;
sbf->bufffade = 0;
sbf->duration = duration;
FastQueuePacket(&outapp);
Though I'm fairly certain level / effect are swapped on some clients so gotta look into that but that seemed to work for titanium.