You need to reset the position of the stream to zero in the compressed stream. You wrote the data to the stream, but when you go to load from the stream on the last line, the position of the stream is at the end of the data you wrote, so blob.UploadFromStream starts at the current position in the stream that has nothing after it.
add the following before downloading:
compressed.Position = 0;
This should load the full contents of the stream.
This is not necessarily an azure thing; most codes that work with streams work with the current position for the stream. I was burned by him several times.
source share