I think the problem is coming from the way you treat the collision.
Try to treat two balls stick together when the relative speed between two balls is smaller than some minimum value (instead of always treat it as collision!).