I'm curious as to what the code issues are myself?
Dusted off my old test server and changed 3 or 4 lines, seems like it's working fine to me (thought admittedly I only tested a few illusions and somatic bond/boon of the garou).
1. add variable to Mob to keep track of size modifiers (default 1.0)
2. set that variable when shrink/grow happens
3. multiply GetBaseSize() by that variable in the final line of SendIllusionPacket, the one that currently goes ChangeSize(GetBaseSize())