You need only one NameVirtualHost directive for each IP-address/port
combination. And you should not use hostnames in NameVirtualHost or
<VirtualHost>. In a simple case like yours, you should use
NameVirtualHost *:80
And in addition, your second and third ssl sites are not going to work
properly. You can only have one ssl site on each IP-address/port
combination because the SSL certificate is selected before the
hostname is known.