Advanced colorization is Painting.
You can not achieve a good result playing only with the curves and not adding slight touches of changes in the hue.
On your case, the way to do that is to work in a high-resolution file, mask it properly and then export to a lower resolution image, so these imperfections are reduced.
Besides that, you need to paint colors on your image.
On this post, I explain how a gradient should have a slight twist on the hue to look more natural.
How can I make the color white look as white as possible?
On the comments on the original question, you were discussing the use of masks.
Masks are the proper way to handle this because they are reusable. You can use it in one step, and reuse it on another one, you can refine it later, without having to redo the work done in that layer.
One additional note. I can not emphasize more the need for a good quality source image.
The image you are posting has very flat ligting and is very low resolution.
Compare the detail on a better quality image, where the candy size is of a similar size (Click to enlarge):

(Candy image from pixabay.com)