That's very weird. I am also using Windows 2000 (Professional & Server) both with SP4 installed, and I am also using mIRC v6.16, and $ticks returns the correct value. I had my system running for 2 months with out rebooting.
Using $duration($calc($ticks / 1000)) returns the same value Microsoft's "Uptime.exe" returns.
About the $chr(32) issue... It's hard to say if it's a bug or by design. I would classify this behaviour as a bug.
If you do the following:
//echo -s $+(Hello,$chr(32),World)
mIRC inserts the space between the two words.
mIRC should echo a blank line to the screen when you do:
//echo -s $chr(32)
But instead of echoing a blank line, mIRC returns an error like you said.