As Ben said, you don't have to mess around the endianness of the GUID unless you are generating it. if you have to compare, then do compare two GUIDs congruently so to say, Guid0->Data0 with Guid1->Data0 etc, bzt showed the correct format of organizing it, except packing is not needed there. it's exactly how UEFI represents it. treating them as some fancy 128 bit integers should also work, but I'd omit such pseudo features in a low level code and use a structure for representing it. who knows what that rust compiler would decide to organize those non-existent on machine level 128 bit integers. comparing them (which is your ultimate need) still will be done on a machine word basis anyway.
as of identifying the FS, I really like the GPT feature of uniquely typing a FS through the mentioned field. unfortunately, many OS providers decided to assign to that field a little different meaning, different from FS type or class (say is it NTFS or JFS). dealing with others' FSs, you would need to take this into account and make additional checks inside of the FS boot sector or superpuper block or how are they calling it, of the FS volume, but for your own FS, you definitely could use that field. very convenient.
as of CRC, Ben is right, you need to look at the UEFI spec, what it says. the polynomial mentioned for example (funny, there is also endianness mess about it, but anyway, it's a story not for typing on a tablet). for the concrete certainty, I suggest you to take a look at the edk2 implementation, it's really quite simple even despite it's about those polynomials.
the link they moved and changed it, so it's even easier, since uses precalculated table (instead of generating it last time I checked in 2016
). this is surely what all the BIOSes do, since it's that code, they are based on.
for displaying for users, the format is also specified in that RFC, and is described in the UEFI spec as well, the so called "registry" format. it shows first fields in LE, the last in BE. the appendix in the spec describes it in details, have a look at it. here, treating GUIDs as 128 bit integers won't work, of course.