Você precisa de NameVirtualHost *:80
no topo da sua configuração. Caso contrário, o servidor resolverá o host virtual com base no IP, que sempre corresponde à primeira diretiva <VirtualHost>
, já que todos os seus sites são 127.0.0.1 para os quais o localhost resolve. Como seu wildcarded também corresponderia ao seu primeiro vhost, mesmo que não fosse localhost, se não fosse especificado em seus outros vhosts também.