In a large bowl, stir together the yeast and warm water. Mix in the evaporated milk, sugar, melted butter, salt, egg and half of the flour. Gradually mix in the remaining flour and cinnamon. Turn the dough onto a lightly floured work surface and knead until the dough is smooth and pulls together, 6 to 8 minutes. Put into a lightly greased bowl, turning once to coat both sides. Cover and allow to rise at room temperature until doubled, approximately 1 to 1-1/2 hours.
While bread rises, make the topping. In an electric mixing bowl, beat the sugar and butter together until light and fluffy. Stir in the flour until it resembles a thick paste but not crumbly. Divide into two bowls. Mix cinnamon into one-half and vanilla into the other half. Set aside.
When the dough has risen, cut into 12 even-sized pieces and shape into balls. Place dough balls onto two parchment paper-lined (or greased) baking sheets, 3 inches apart. Pat flat and place circles of topping on top of each, patting down lightly. Use a knife to cut grooves into the topping like a seashell. Cover and let rise until doubled, about 45 minutes.
Preheat the oven to 375° degrees F. Bake until deep golden brown, 16 to 20 minutes.