Well, what did you expect? Are there at least 10 bytes in the serial port buffer waiting for you? Is the array you are loading them into big enough for 20 bytes? Because that is what you are asking for "Give me 10 bytes, and but them in this one byte buffer, starting from the eleventh byte location"
Try this:
byte[] buff= new byte[20];
serialPort1.Read(buff, 10, 10);
But instead, please don't use "magic numbers" - use constants, or check the serial port length to ensure there are at least as many bytes as you need first. Then use that size to allocate your buffer, remembering to add on whatever you need for the output offset.