The UART peripheral doesn't manage the structure or CRC, it is simply going to pull bytes off the wire, you'd need to collect and assemble/accumulate those bytes.
If the connection is interrupted or otherwise gets out-of-sync you'll need to recognize the SOF/EOF and resynchronize the stream.
The CRC is recomputed in the same manner it was generated, and compared for validity. Like two people doing a math problem separately and then comparing answers at the end. If you have the same solution to the complex problem, the probability is high that the data is the same.