Gut fish, reserving liver. Rinse liver, pat dry, and set aside. Cut off and discard head and tail (save for stock or another use, if you like). Put fish on its back and slice along belly toward tail end so that fish opens like a book. Remove fish bones, leaving black lining (if using milkfish) intact. Trim about 1⁄2" off belly flaps.
Melt 1 tbsp. of the lard in a wok over medium-high heat. Add red pepper flakes, shallots, and 3 tbsp. of the garlic and stir-fry for 1 minute. Add liver and stir-fry until cooked through, about 1 minute. Crush liver mixture with a mortar and pestle to a paste. Stir in cilantro and soy sauce and set aside to let cool.
Stuff each fish with one-third of the paste and scatter each with one-third of the remaining garlic. Season with pepper to taste. Tie each fish shut with 3 pieces of kitchen twine to enclose filling.
Melt remaining lard in a large nonstick skillet over medium heat. Fry fish in batches until golden brown on each side, about 5 minutes per side. Return fish to skillet, reduce heat to medium-low, add rosemary, cover and continue to cook until fish is cooked through, 4-6 minutes more. Discard kitchen twine before serving. Serve warm or at room temperature with hot steamed rice, if you like.