In a large saucepan combine the cream, milk, salt, vanilla extract, Grand Marnier and butter. Cook over medium-low heat until the butter is melted, about 10-15 minutes. Stir occasionally.
While the cream is warming, whisk the egg yolks and sugar in a large mixing bowl until combined. Whisk the cornstarch into the yolk and sugar mixture. Do this in small batches, until there are no lumps of cornstarch.
Remove the liquid from the stovetop and temper the sugar egg mixture. To temper, whisk the egg mixture quickly while slowly adding the warm liquid (about 1/4 cup at a time) until all the liquid is combined. Now you have created a custard.
Pour the custard back into the saucepan. Cook over medium-high heat. Whisk constantly until the custard is thick and almost boils, about 6 to 8 minutes. Using a fine mesh seive, strain the pudding into a large bowl. Cool. Store in an airtight container in the fridge.