For the brioche, heat the milk to 37C/99F, pour it into a measuring jug and add the sachet of yeast. Cover with cling film and set aside for 10 minutes.
Beat the eggs and add the sugar and vanilla paste. Sieve the flour into a large bowl and add the salt and nutmeg. Make a well in the flour and pour in the milk mixture. Use your hands to bring the dough together - it will be very sticky and wet. Attach a dough hook to a freestanding mixer, add the dough and begin to knead.
In a separate bowl beat the cinnamon into the butter until combined, then add to the dough mix as it is being kneaded. When all the butter has been incorporated into the dough, flour the work surface and knead the dough by hand until it is smooth, soft and elastic. Transfer to an oiled bowl, cover with cling film and refrigerate overnight.
For the butterscotch, put a pan over a medium heat. Add the sugar, cream, vanilla, cream of tartar and 75ml/2½fl oz water. Stir and cook the butterscotch until it reaches 114C (use a sugar thermometer for this), add the butter and keep checking the temperature. When the syrup reaches 143C pour it into the prepared tin and set aside to cool and harden.
For the fudge, grease and line a second small tin. In a pan set over a medium heat combine the milk, butter, vanilla, sugar and salt. Stir until the sugar dissolves. Cover with a tightly fitting lid and cook for a further two minutes. Remove the lid and continue to cook at a rolling boil for 10 minutes until it reaches 114C (use a sugar thermometer), then transfer the pan to a bowl filled with cold water. Leave the pan in a cool place until it is lukewarm (or 43C) - do not stir. When the fudge has cooled, use a wooden spoon to beat it until it is thick, smooth and creamy. Pour into the prepared tin and set aside in a cool place to harden.
For the cream cheese frosting, whisk the butter and cream cheese until smooth and light. Stir in the icing sugar until incorporated, then briefly whisk again until light and smooth (take care not to over whisk the frosting as it will become runny). Set aside until ready to serve.
Preheat the oven to 200C/400F/Gas 6 and grease and line a small square baking tin. When the butterscotch and fudge have hardened break them into small pieces.
Remove the dough from the fridge, knead the fudge and butterscotch pieces into the dough, and divide into 12 equally-sized balls.
Grease a 30cm/12in high-sided round baking tin with butter and dust with sugar. Place the dough balls in neatly and set aside for two hours to rise. When the brioche has risen, mix together the egg yolk and milk and brush over the loaf gently with a pastry brush.
Put the brioche in the preheated oven for five minutes, then reduce the temperature to 180C/350F/Gas 4 and bake for a further 25 minutes, or until it is golden-brown and sounds hollow when tapped underneath. Transfer to a cooling rack.
When the loaf is cool, remove from the tin and spread the cream cheese icing on the top of each bun. Allow the icing to set a little before serving.