Welcome, @saadimtiaz to OEM.
Sorry, but I don’t have an ESP32 to test the code on, the emonLibCM was written specifically for the Atmel ATMega 328P.
The library you are missing is part of the standard Arduino installation [Arduino directory]/hardware/tools/avr/avr/include/util/crc16.h - if you are not using that, then I’m afraid I cannot help you - but someone else might.
But – changing to emonLibCM will make a big difference if you have a rapidly switched load, but it won’t necessarily make a difference to the accuracy at very low currents. Every c.t. is inherently inaccurate at low current - this is due to how the magnetics in c.t’s work, and depending on how much you paid for your c.t. will make the difference about what “low” means in relation to the rated maximum current. For example, your YHDC SCT-013-030 is only specified down to 10% of rated current, i.e. 3 A. Below that, the manufacturer makes no claims for its accuracy.
You don’t say what sort of inaccuracy you have, but you should probably look at your breadboard layout and power supply filtering as a first move.