Stir together garlic, ginger, salt, and black pepper in a large bowl. Add chicken; press garlic mixture into chicken pieces. Cover with plastic wrap; refrigerate at least 3 hours or up to 12 hours.
Heat oil in a large Dutch oven over medium-high until oil shimmers. Add onion; cook, stirring often, until onion starts to become translucent, about 3 minutes. Stir in tomato paste and fish sauce. Cook, stirring constantly, until combined and tomato paste caramelizes and turns a few shades darker, 6 to 8 minutes. Add 7 cups water, scraping up any browned bits from bottom of Dutch oven. Add chicken and any remaining garlic mixture in bowl to Dutch oven. Bring to a boil over high. Reduce heat to medium-low.
Place peanut butter in a medium-size heatproof bowl; stir in 1 1/2 cups liquid from Dutch oven, 1/4 cup at a time, until peanut butter is thinned out and mixture is creamy. Add to mixture in Dutch oven; bring to a vigorous simmer over medium-low. Simmer, undisturbed, 20 minutes.
Stir cabbage and carrots into mixture in Dutch oven; return to a vigorous simmer over medium-low. Simmer, undisturbed, 10 minutes.
Stir potato and sweet potato pieces into mixture in Dutch oven; return to a vigorous simmer over medium-low. Simmer, undisturbed, until chicken and vegetables are tender and oil has separated from thickened sauce, 30 to 35 minutes. Remove from heat; stir in Scotch bonnet chiles, if using, and season with salt to taste. Serve over rice.
Poulet mafé can be made up to 3 days ahead and stored in an airtight container in refrigerator. Reheat gently before serving.