The data sheet quotes ±3% linearity between 10% and 120% of rated current, i.e. between 10 A & 120 A.
In practice, it remains linear quite a long way below that. There’s a test report in ‘Learn’. However, no mention is made on the data sheet of phase error, and this is quite important when measuring real power.
That’s meaningless. The c.t. has no concept of either power or voltage. Only current is meaningful.
And what about the analogue signal conditioning on the front end? How have you constructed this?
If you think about it, 2 kW @ 240 V represents a current of just 8.33 A - 8.33% of full load for the c.t., and with an 18 Ω burden, that will give an input voltage to the ADC of 75 mV rms. Yours is a familiar complaint, and it’s common when the experimenter has built the analogue front end on stripboard or even worse, on plugboard. The problem appears to be noise and interference getting in either directly picked up from electric or magnetic fields in the vicinity, or via the power supply, and that’s evident from your table of results.
There’s also an inherent problem of noise in the calcIrms( ) software: The rms calculation involves squaring the values (of course!) but in the process you also lose the sign. This means that and random noise is rectified along with the wanted signal and gets added to it - and this largely explains your “zero” reading of 150 W.
A further problem you will surely come across is that by using the nominal rms supply voltage and rms current, you are not calculating power (otherwise called real power or active power) but volt-amperes: apparent power. This will give you errors when you measure something that has a reactive component - a fridge or freezer with an induction motor, for example.
If you add a voltage transformer and measure the voltage, and then use calcVI( ), it will give you a definite improvement, because the random noise is no longer rectified and tends to cancel out.
Zero crossing detection can only work with a voltage present.
If you do add voltage measurement, you’ll soon see that you meant “at that minute” - not for the day. 
Not that I’m aware of.
One circuit modification you could look at is to change the c.t (and v.t if you are going to use one) input configuration from what you see in the ‘Learn’ pages to the configuration we now use in the emonTx V4, but keeping your burden resistor in place (i.e. the same arrangement as almost every audio amplifier, where one side of the input is solidly grounded, and the input capacitively coupled to the ADC input, with the bias voltage applied there).
Also if practical, you can use a multi-turn primary winding for your c.t. You then adjust the calibration coefficient accordingly - so for say 12 turns, your 8.333 A becomes 100 ampere-turns (this what the c.t sees) and you divide your 118.196 by 12 to get the new calibration. This should reduce your zero current “power” to 12.5 VA.