Append calculated CRC to data and recalculate does not yield zero
A result of zero is only expected for some calculation methods. 

Besides the polynomial and byte ordering, there are other options for the various CRC methods. 


The initial pattern.
If the CRC is inverted before transmission.
How padding is done for unaligned sizes.


I had some good CRC references, but unfortunately, I didn't take all of them with me when I retired. Even so, I can make the CRC-32 option work as you expect if I invert the CRC.

Using the calculator, use 12345678 ASCII (multiple of 32-bits, so no issue with padding). Then, invert the CRC result before appending it to the starting data pattern. Run the calculation again, the result is FFFFFFFF. The inversion is zero, what you expect. (I only tested with big-endian)

I was disappointed that the wikipedia article barely mentions the 3 options I noted above.