Preheat the oven to gas 4, 180C, fan 160°C Grease a 900g (2lb) loaf tin and line with nonstick baking paper.
Combine the cranberries and marzipan with 1tbsp of the flour and set aside. Put the butter and sugar in a large bowl and beat with an electric whisk until pale and fluffy. Gradually add the egg, beating well between each addition. Fold in the ground almonds, remaining flour, orange zest, almond extract, and the cranberry and marzipan mix. Transfer the mixture to the tin and smooth the top.
Bake for 50 minutes or until a skewer inserted into the midle comes out clean, then remove and rest in the tim for 10 minutes, before tipping out onto a wire rack to cool completely.
For the topping, put the cranberries, sugar, vanilla and orange juice in a saucepan, and cook on a medium heat for 6-8 minutes, stirring until jammy. Set aside to cook and thicken.
Meanwhile mix the icing sugar with enough orange juice to make a smooth, runny icing. Drizzle over the cake and top with the cranberry mixture.