Preheat the oven to 180°C/160°C fan/350°F/gas mark 4. Grease a 23cm/9in square cake tin and line it with baking parchment.
Sift together the plain flour, cornflour, baking powder, bicarbonate of soda and salt in a large bowl.
In a large jug, whisk together the non-dairy milk, non-dairy yogurt, melted vegan butter, oil, sugar, vinegar and vanilla extract until they are very well combined.
Pour the wet ingredients into the dry and stir with a balloon whisk until no dry lumps remain but do not over-beat the batter.
Pour the batter into the prepared tin and spread it level.
Bake for about 25 minutes until the cake is firm to the touch and a skewer inserted into the centre comes out clean.
Leave to cool in the tin for 20 minutes then carefully turn it out onto a wire rack and leave to cool completely.
Once the cake is cold, line the tin with fresh baking parchment, leaving some overhanging so that you can easily lift it out later, and return the cake to the tin.
To make the orange curd, place the cornflour in a non-reactive saucepan (such as stainless steel) and gradually whisk in the orange and lemon juice.
Add the sugar and orange extract and place the pan over a medium-low heat and stir until the sugar has dissolved. Continue to cook the curd whilst stirring until it comes up to a simmer and becomes very thick.
Remove from the heat and whisk in the milk, butter and orange zest. Allow to cool until it is barely warm then pour over the cooled cake and refrigerate until set.
To make the chocolate icing, place the chopped chocolate, butter, milk and golden syrup in a heatproof bowl over a pan of gently simmering water and stir until melted and smooth.
Allow to cool until barely warm then pour over the set curd and pop in the fridge until set.
Once the icing is set, use the overhanging parchment to carefully lift the cake out of the tin. Use a very sharp knife to slice it into bars or squares. Store in an airtight container at cool room temperature.