The real guild id is already used by some events (join/leave guild). Maybe instead of changing the whole system you could just add a bunch of new functions like GetGuildNameFromRealId and GetGuildIdFromRealGuildId, along with GetUnitTabbardRealGuildId. Maybe also a GetUnitKioskRealGuildId for NPC traders which would allow me to create my own local mapping between ids and names as requested
here.