For those interested to know, we got a banlist from someone who was having this issue and put it on our own server. We traced it down to a ban entry that had a very large number for the unban time:
"STEAM_0:<numbers>"
{
<other stuff>
"unban" "8.2931441613731e+015"
}
By removing all of the other bans and testing, we crashed. By setting the unban value of this entry to "0", it worked fine. Megiddo traced the problem down to some of XGUIs code in handling the receiving of the ban data, which I later traced down to XGUI's clientside bans.lua file.
After searching the file for a bit, I realized that I was using os.date() to convert various times to something more pretty-- And if any of you have used os.date before, it can be.. unstable. After more prodding, I found that giving os.date() raw time values greater than 32535244799 (regardless of formatting tags) caused it to crash. Why the Garry's Mod update may have changed something is beyond me.
I'm working on a fix where any time os.date is called, cap the time value at 32535244799. I'll figure out a less hackish solution in the future. I hope to have the fix sometime tomorrow.
If you want to fix the problem right now, go to your garrysmod\data\ULib\bans.txt file, find any entries where the value of unban is greater than "32535244799" and set it to "0". (Be sure to keep the quotes. 0 will turn it into a permaban, but I'm pretty sure if the unban year is set to more than 3001, we'll all be dead anyways). Then just be careful not to ban anyone for too long until we get this fix pushed.