Wash the ube, but leave the skins on. Steam or boil them whole until tender in the middle, about 30 to 40 minutes depending on their size. Once cooked through, let cool until you are able to handle and then peel off the skin.
Roughly chop the ube and place into a blender. Add evaporated milk and coconut milk and blend until smooth.
Pour ube puree into a large, heavy-bottomed pot and add sweetened condensed milk and sugar. Stir until well combined.
Heat the mixture over medium heat until in comes to a simmer, then reduce the heat slightly to medium low. Simmer for 40 to 45 minutes, stirring frequently to prevent the jam from sticking to the bottom of the pot and burning.
Note: the jam is thick and will spit, take precautions to prevent being burned. Have a lid available to cover while not actively stirring. Long sleeves and heat resistant barbecue gloves are recommended. Do not put your face directly over the pot to avoid burns to the face.
Remove the jam from the heat and stir in butter, lemon juice, vanilla and salt.
Transfer the jam to jars and allow to come to room temperature, then refrigerate. It will last in the refrigerator for about 5 days. Alternatively, you can freeze it for up to 4 months. Makes approximately 5 cups jam.
Top the ube halaya with latik (see below) and eat as a pudding. Ube halaya is also the base ingredient for many ube-flavored desserts including cookies, brownies, cheesecake, ice cream, etc.