Did you read this as it might give you some ideas you could try?
I am fairly sure it may be something in the configuration of your network now as it would appear your virtualhost setup is working. My guess is that when you try from your own PC that your are served the first domain in the vhosts which is always the default. Have a look at the two types of virtual hosts - IP-based and name-based. That might be the clue.
You have to ask the question how can Apache send you to the other 2 domains if Apache knows not how to do that using just the one IP?
What addresses are you typing in your browser on your PC to get to the domains locally?
It can be done by using different local IPs for each domain I believe. You need to try and experiment a bit.
Remember that the bulk of the virual host container configs are correct as they are available from the internet.
You can add more containers with local IPs each with their coresponding domain. As I have said before I can't replicate this as I dont have a network as such. You will have to experiment but leave the containers intact that are accessible from the Internet. Just work on your local access, perhaps in different virtual containers.
I was editing my post when you were composing your reply. So there is a bit more to read.