use ZipEntry.OpenReader to open a stream with the extracted entry. This is often what you want, when extracting into memory.
You can also extract into an existing stream (like a MemoryStream that you allocate), with the ZipEntry.Extract(Stream) method.
These methods are documented in the helpfile, and there is example code showing you how to do it.
When the ZipEntry is encrypted, the property ZipEntry.Encryption is set. Examine it before extracting to learn the encryption method.
You can change the XML content, and then add it back into the zip archive. Use the UpdateEntry() method to do this.
Spend some time looking at the documentation, it is very helpful.
Eventually you will want to save the zip archive. You don't need to save to a filesystem file, but you will want to save it *somewhere*.