The small shifts in highlight you're seeing are unfortunately almost certainly due to dye lot variation, which is incredibly common when working with heavily variegated yarns, even if the skeins came from the same production run. Variegated yarns are complex because they usually involve strands of several different shades woven together before being dyed. If the dye lot shifts slightly, even a small change in the chemical bath or the way the different colors are blended will make the colors 'settle' differently across different skeins. What looks like a match in one ball might appear deeper or slightly warmer once it is blocked or even finished, because the yarn reacts to moisture and tension differently based on the exact dye batch. Trying to make them look perfectly identical is actually a lot of work and probably not worth the effort.
Rather than trying to find a way to make them look exactly the same, which is probably impossible, you might consider using one skein from the set for the body and the remaining two to finish the pieces. If you are doing cables, they naturally compress and highlight certain strands more than a plain stitch would, which might actually help bridge some of the tonal gaps by forcing the color shifts to appear in the same pattern of visual bands across both pieces. This way, if the child's piece is slightly brighter, the dense cabling will help anchor those lighter sections.
As for mixing in a solid color, that is a solid strategy if you want to harmonize the pieces without introducing a whole new hue. Using a solid that sits right in the middle of the primary colors of your variegated yarn can act like a buffer, pulling the extreme bright spots and deep shadows into a more unified range across both garments. You don't have to use a ton of it; even just the neckline and cuff ribbing can significantly ground the overall tone of the sweater and make the adult and child versions feel like they belong together.