Bring a pot of water to boil, add a little salt and add two large peeled sweet potatoes; cook for 15-20 minutes or until tender. Mash sweet potatoes, add salt and 1 tbsp olive oil; set aside.
Peel and cube the remain sweet potato and chop the onion very thin. Heat a cast iron skillet on medium high. Add canola oil, add the sweet potato, cook for 5 minutes, add onion; cook for 5 minutes. Add garlic, 1 tbsp. olive oil,cranberries and rosemary; cook for 5 minutes. Add salt and pepper, mix well, turn the heat off. Set aside.
Mix masa harina, water, a pinch of salt and one tbsp olive oil, mix well. Add 1/2 cup mashed sweet potato to the dough, mix well. Divide masa dough into 12 balls and let it rest for 5 minutes.
Assemble the tamales by opening the corn husk and spreading the dough across the husk. Add sweet potato and cranberry mixture to the middle of the husk, add some queso fresco, roll the husk and close tamales by tying husk string to each end. Steam the tamales using a steamer or a tamalera pot. Cook for 20 minutes.Take them out of the steamer and let them rest for 5 minutes. Mix cranberry preserve, water and salt to make a sauce. Serve by placing some mashed sweet potatoes first, remove the husk, cut tamales diagonally on top of the potatoes, cranberry sauce, queso and red pepper flakes on top.