1. Bug#1. All archives created by $zip have the 'y' attribute, which is supposed to mean they're some kind of temp file:
This looks like a bug in the zip library that mIRC is using. It is creating files with a temporary attribute and not removing this when it finishes the zip file update. It should be possible to unset this once the library finishes.
2. There are a few filenames that return $null as an attribute even though 'n' is the attribute for 'no attribute'.
The $file().attr property uses the standard GetFileAttributes() API, so the result you are seeing is what that API is returning. It has nothing to do with device names.