Bekar said /play, not /splay, (not a bad idea that smile)

I think it's probably your parsing of the who replies that's your problem. Most likely the fact that you call "upd-clienc" for every raw 352. You mentioned that alias colors the rest of the nicks, so I'm guessing you're looping all nicks in it...

Try whas has been suggested several times, use /cnick coloring for op/hop/voice/regular/notify/etc. Then you won't need to call upd-clienc at all.
Or at least move that from the raw 352 event to a raw 315 (End of /WHO list.)

That just leaves ircops, or away nicks to /cline (/cline over-rides /cnick so there won't be a problem there).
See if that improves things.