It's not a problem with the equipment, it's a config issue. You should be able to get it working with your current router, you'll probably just need to add the IP address of the DNS server for the element.local to your client. No need to throw money away.
The problem is that your TP-Link router doesn't know how to forward DNS requests to the element.local DNS servers, so when your client (which is presumably getting IP settings from the router via DHCP?) looks for element.local, the router doesn't know what this host is, hence you can't connect.
You'll have the same problem if you put a new AD/DNS server on your Hyper-V server. You'll need to manually set up your clients with a valid DNS server for that domain.
Honestly, what you really need to do is take a step back away from your keyboard, and then think and plan what you are going to do. It doesn't sound like you have the best grasp of networking or Active Directory based on what you've posted here, so your next step should be to write down what you're looking to achieve, then work out how to do it. Put together a little network diagram, have a bit of a read of how DNS works, plan out how you want AD to look, think about which other VM servers you'll want to work on. Otherwise, you'll end up with something that doesn't work properly and spend loads of time figuring out issues that are peculiar to your setup, and not the things you actually want to learn.