Preheat the oven to 160°C (320°F). Spread the blanched hazelnuts on a baking tray in a single layer and roast for 10–15 minutes until fragrant and lightly golden. Let them cool completely.
Transfer the cooled hazelnuts to a food processor and blend on high, scraping down the sides as needed, until you have a smooth, runny hazelnut butter.
In a medium saucepan, combine the heavy cream and whole milk and warm over medium heat, stirring occasionally, until steaming but not boiling. Remove from heat.
In a large bowl, whisk together the egg yolks and sugar until the mixture is slightly lightened in color, about 1–2 minutes.
Slowly pour the warm cream-milk mixture into the egg yolks, one spoonful at a time at first, whisking constantly. Once you have added about half, pour in the rest in a slow, steady stream while continuing to whisk.
Pour the mixture back into the saucepan and cook over medium heat, stirring constantly with a spatula, until the custard thickens and coats the back of the spoon. Run your finger across the spoon, the line should hold cleanly. Do not let it boil. Remove from heat immediately.
While the custard is still warm, add the hazelnut butter and vanilla extract and whisk vigorously until fully combined and smooth. For an extra-silky result, strain through a fine mesh sieve.
Refrigerate for at least 4 hours, or overnight.
Use a vegetable peeler to shave thin pieces from the chocolate bar, or finely chop it. Set aside.
Pour the cold custard into your ice cream maker and churn according to the manufacturer's instructions. When the ice cream is thick and close to soft-serve consistency, add the chocolate shavings and let it run for a few more minutes.
Serve immediately as a soft-serve, or transfer to a freezer-safe container, and freeze for 2 hours until scoopable.