Lightly heat the banana leaves over an open flame or a hot pan until they become pliable and glossy. Wipe clean with a damp cloth and set aside. This prevents tearing during wrapping and adds a subtle aroma when steaming.
In a medium saucepan, heat the oil and sauté onion, garlic, tomato, and green pepper until soft. Stir in the cooked meat, cumin, paprika, tomato paste, and a little salt and pepper. Simmer for 10 minutes until the mixture thickens slightly. Add the cooked rice, potato, and carrot. Stir to combine, then remove from heat.
In a large bowl, beat the lard until creamy. Gradually add the masa harina, warm chicken stock, salt, and achiote powder. Mix well until smooth and slightly sticky. The dough should be spreadable but not runny. Adjust with extra stock or masa if needed.
Place one banana leaf square on a flat surface. Spoon about 3 tablespoons of masa in the centre and flatten slightly. Add 2 tablespoons of the meat filling on top. Fold the banana leaf around the filling, first from the sides, then from the top and bottom, forming a tight rectangular parcel. Tie securely with string.
Arrange the wrapped tamales upright in a large steamer or pot with a rack. Add enough water to reach just below the rack. Cover with leftover banana leaves and a tight-fitting lid. Steam for 1½ to 2 hours over medium heat, checking occasionally to ensure the water level stays constant.
The tamales are ready when the masa is firm and easily separates from the leaf. Allow them to rest for 10 minutes before serving to let the flavours settle.
Serve warm, directly in their banana leaves for an authentic presentation. Accompany with a side of curtido (pickled cabbage) or a slice of lime for brightness.