ctcp ^1:VERSION:.ctcpreply $nick ((DuckSkaIRC v2.3)) | halt
You cannot remove the mIRC version reply, so halting does nothing. Also, you aren't telling mIRC what you are replying to. And, your format of the CTCP event was missing the location part.
Use:
ctcp *:VERSION:*: .ctcpreply $nick version ((DuckSkaIRC v2.3))