Preheat oven to 350F and spread nuts on a rimmed baking sheet. Bake 10 minutes, until golden brown and fragrant. Remove and let cool, then coarsely grind.
In a medium saucepan over medium heat, combine 1 cup heavy cream, almond milk, and hazelnuts. Bring to a gentle boil, then remove from heat and cover. Let steep 2 hours.
Strain through a fine-mesh sieve into a bowl, pressing on solids to remove as much liquid as possible. Return liquid to saucepan and bring back up to barely a simmer over low heat. Discard solids.
In a medium bowl, whisk egg yolks with sweetener until well combined and lightened in color. Add about 1 cup of the warm cream mixture, whisking continuously. Then slowly add the egg yolk mixture back into the hot cream, whisking continuously. Continue to cook over low heat until mixture is thick enough to coat the back of a wooden spoon.
Remove from heat and stir in remaining cream and liqueur or hazelnut extract. Transfer to a bowl set over an ice bath and let cool 10 minutes, then refrigerate until well chilled, at least 3 hours.
Sprinkle with xanthan gum and whisk well to combine. Transfer to an ice cream maker and churn according to manufacturer’s directions. Once churned, transfer to an airtight container and freeze another hour or so until firm but not rock solid.
If you don't have hazelnut liqueur substitute with 1 teaspoon hazelnut extract instead.The xanthan gum is optional, but it helps with the gelato's consistency.