You should be able to do what you want, but you need to set the CompressionLevel property on the individual ZipEntry instances, not on the containing ZipFile.

The way it works is that the CompressionLevel applies to entries, not to the entire zipfile as a whole. So when you set the CompressionLevel on the ZipFile, this is the level that is ued for all subsequently added ZipEntries. If you then call
AddEntry(), the newly added entry will get the CompressionLevel from the ZipFile container.

For updating a zip file, you'd need to set the compression level on each entry, then re-save the ZipFile.