SirRaisinBran joined the community
It's a pretty complicated system to set up a custom village, but definitely do-able. The current Minecraft villages are created using a "Jigsaw" system. In order to do anything with custom villages, you need to understand how these function. This video is a really good explanation of the system, make sure to watch the whole thing. It's from 1.14, but for the most part the Jigsaw system hasn't changed much since then. The 1.15.2 mod "The Farlanders", which creates custom villages, has all of their code available on Github, so if you were to use that code as well as vanilla village files as reference, then you'd be in a pretty good spot. Not much more documentation exists out there regarding doing something like this, so past everything I've given you, there isn't much else available that can guide you in the process.