Well...I'm not quite sure where your specific problem is, but...you might want to look at moving the line:
memoryStream.Write(buffer, 0, bytesRead);
inside the loop which reads data from the zip file - or you will just throw away everything except the last block you read.
Which does kinda sound like the problem you are getting, but shouldn't on that small a data input. Worth fixing though - it might solve your problem.
do
{
bytesRead = gzipStream.Read(buffer, 0, bufferSize);
memoryStream.Write(buffer, 0, bytesRead);
} while (bytesRead == bufferSize);