In a small pot, bring the milk to just before boiling. Remove from the heat and add the butter to the pot to melt. Add the mixture to a small bowl and let it cool until warm to the touch, but not hot. Add the egg and sweet potato purée and whisk to combine.
Mix together the flour, sugar and yeast in the bowl of a stand mixer. Make a well in the middle of the dry ingredients and add the sweet potato mixture. Using the dough hook attachment, mix the ingredients on low until it comes together, occasionally using a spatula to scrape the sides of the bowl. Adjust to a medium-high speed and mix for 6-8 minutes until the dough is still soft and slightly sticky but coming away easily from the sides of the bowl.
Scrape the mixture into a large greased bowl and cover with clingfilm. Leave it in a warm, draft-free spot for 1-2 hours until it has doubled in size.
Add the purée along with the honey, orange juice and 1 tsp cinnamon to a medium pot and bring to the boil. Reduce the heat and simmer gently for 25 minutes until the mixture thickens slightly and is almost spreadable.
Meanwhile, add the walnuts to a small frying pan and toast over a medium heat. Transfer to a chopping board and chop until fine. Transfer to a bowl and combine with the light brown sugar and ½ tsp cinnamon. Leave the sweet potato ‘butter’ and walnuts to cool.
Dust your kitchen surface with flour. Lightly punch down the dough in the bowl and tip out on to the floured surface. Roll out into a rectangle shape approximately 25 x 40cm. Using an off-set spatula, spread the sweet potato ‘butter’ evenly across the dough, leaving a 1cm border all around. Sprinkle over the crushed walnuts so that the sweet potato is completely covered.
Starting with the longest side, roll the dough up as tightly as possible. You should have a long Swiss roll-like shape. Use a little water to help seal down the edge. Cut the length of dough into 12 equal pieces. Fit the pieces into a rectangular 24 x 30cm greased baking dish, cover with greased clingfilm and leave in a warm place for 30 minutes until the buns have increased in size. During this stage, preheat your oven to 200°C/fan 180°C/gas mark 6. Transfer to the oven and bake for 25-30 minutes, or until the buns are nicely browned. Remove from the oven and cool.
Meanwhile, add the dairy-free cream cheese, icing sugar and cinnamon to a bowl and whisk together until smooth. When the buns are still a little warm but not hot, spread the cream cheese mixture on top. Serve.