Consider the following unit test:
[TestMethod]
public void TestByteToString()
{
var guid = new Guid(\"61772f3ae5de5f4a8577eb1003c5c054\");
Well, they are the same, after the first 4 bytes. And the first four are the same, just in the reverse order.
Basically, when created from the string, it's assumed to be in "big-endian" format: Highest byte to the left. However, when stored internally (on an Intel-ish machine), the bytes are ordered "little-endian": highest order byte to the right.