Make sure Duchy I give is the main title of Vassal

Solution 1:

Land can't be directly granted to people outside your realm, with I believe an exception for sons, so you can grant the duchy to your son (be careful about this, Gavelkind has kind of a backwards incentive where it will switch to granting different land if you grant the land someone is going to inherit anyway). In any case, the main thing is that the grandson has to inherit the duchy in your realm before inheriting the duchy outside of it. The obvious way to do this if you can grant the duchy to your second son is to grant it and then kill him, so it passes to his grandson.

Keep in mind that if it passes to him after he already has Champagne (so it leaves your realm), it's not the end of the world. He may accept vassalization anyway, especially if he sets the duchy in your de jure realm to his primary title. If you really want the land back, you'll have de jure claims on it so warring it back isn't particularly difficult. Having a family member in land outside the realm also makes it much easier to get the land back, they will readily accept marriages with your heirs (gender doesn't matter, since the line will be the same), which you can use to either get your heir's children a claim on the title or even set them up as the heirs to the title. If you have a lot of land outside your realm under your dynasty, you can also set up Seniority succession to centralize it.