I (sorta) found the problem. Apparently, Tie::DBI can't handle ANY field that has a mixed case name.
It wasn't the DATE that was tripping it up. dateCreated and songsPlayed wouldn't be set at all, whereas nick, hostmask, level, credits, and moderates would.
changing them to songs_played and date_created fixed it.
I suspect that since field names are case insensitive on the DB side, but hashes are
not, the author presumed that you'd always use lowercase. So I bet you didn't need
to change your database... just your access code.