Place ribs, unpeeled garlic, and peppercorns in a large pot. Add 2 quarts water and bring to a boil over high heat. Reduce heat to medium and simmer, skimming, until meat is very tender, about 2 hours. Remove ribs, then strain stock into a bowl and set aside. When ribs are cool, pull meat from bones. Discard bones and set meat aside.
Rinse guajillo chiles. Heat a large skillet over medium-high heat, add chiles, and cook, turning, until fragrant, about 40 seconds. Transfer chiles to a bowl, cover with hot water, and soak until soft, about 25 minutes. Drain chiles and remove and discard stems and seeds. (It is best to wear rubber gloves when handling chiles because oils can irritate skin.)
Place chiles in a blender, add peeled garlic, tomatoes, onions, and cloves. Purée until smooth. Press through a sieve into a small bowl. Heat lard in a large pot over medium heat. Carefully add chile purée (it tends to spatter). Cover and simmer, stirring occasionally, for 15 minutes.
Mix masa harina with 1 cup of water and stir into chile mixture. Cook for 1 minute, then add reserved stock, beef, and dried epazote. Season with salt and pepper, and heat through, 5-10 minutes. Garnish with lime wedges and fresh epazote, and serve warm.