Bring a large pot of water to a boil and set a bowl of ice water nearby. Cut a small X in the bottom of each peach, then lower a few at a time into the boiling water for 30 to 45 seconds. Scoop them out with a slotted spoon and drop them straight into the ice water to stop the cooking. Slip the skins off with your fingers, halve each peach, remove the pit, and roughly chop the flesh.
Add the chopped peaches and the lemon juice to your wide, heavy pot. Set the heat to medium and cook, stirring occasionally, for 15 to 20 minutes, until the peaches release their juices and collapse into a loose, soupy mixture.
Turn off the heat for a moment to reduce splashing. Use an immersion blender to puree the fruit directly in the pot until completely smooth, with no lumps remaining. Alternatively, pass the softened fruit through a food mill and return the puree to the pot.
Stir in the granulated sugar, brown sugar, cinnamon, nutmeg, ginger, cloves, and salt. Stir well so the sugar dissolves fully into the warm puree. Hold the vanilla extract back for now.
Return the pot to low heat and bring the mixture to a gentle simmer. Cook uncovered, stirring every 8 to 10 minutes, for 60 to 80 minutes, stirring more often and scraping the bottom as it thickens. The butter is ready when it mounds on a spoon and a spatula dragged across the bottom leaves a clear trail for a second or two.
Stir in the vanilla extract and cook for one more minute. Taste and adjust with a pinch more cinnamon or a small splash of lemon juice if needed. Ladle the hot butter through a funnel into clean jars, leaving about 1/2 inch (1 cm) of headspace. Wipe the rims, add the lids, and let the jars cool to room temperature before refrigerating.