Try this:
declare @Contacts xml = '<Contacts>
<Contact>
<Name>Evan Gabriel</Name>
<PhoneNumbers>
<PhoneNumber Type="Home" Number="555-1224" />
<PhoneNumber Type="Work" Number="578-9812" />
<PhoneNumber Type="Cell" Number="578-7299" />
</PhoneNumbers>
</Contact>
<Contact>
<Name>Elizabeth Dallas</Name>
<PhoneNumbers>
<PhoneNumber Type="Home" Number="714-5488" />
<PhoneNumber Type="Cell" Number="714-1099" />
</PhoneNumbers>
</Contact>
<Contact>
<Name>Anna Palmer</Name>
<PhoneNumbers>
<PhoneNumber Type="Work" Number="555-1440" />
<PhoneNumber Type="Cell" Number="714-0523" />
</PhoneNumbers>
</Contact>
</Contacts>'
select
c.query('*[local-name()!="PhoneNumbers"]'),
NumFound = c.value('count(.//PhoneNumber)', 'int')
from @Contacts.nodes('//Contact') c(c)
for xml path('Contact'), root('Contacts')