/etc/hosts can't be a symbolic link?

Yes, a symbolic link does not work.

Use a hard link instead:

sudo ln -f {source} /etc/hosts

Hosts is a very basic system file and many OS functions depend on it. So they won't accept sym links on such files and expect them to be of type 'ordinary'.

Try overwriting it with your versions, keeping the originals. By the way, you may want to try running local DNS with different zones instead.