Before you do the adding, can you print out what you get for
Point::mul($il, $secp256k1_G)
and
$this->ECpub
Make sure that those are what you expect them to be.
The only thing that can be wrong here is that either you are adding the wrong things or Point::add is broken.