Your question's pretty broad. There's a lot of different commands you can use to troubleshoot and monitor QoS, so I'll focus on the primary question you have, which is how to reasonably verify your QoS configuration is working and how to read the policy-map interface output.
The only true way to verify that QoS is working is to hook up a traffic generator and monitor your drop rate in various queues. Since that isn't typically feasible, particularly in a production environment, all you can really do is verify that the traffic is being marked and classified properly.
What you're really looking for, when it comes to verifying if your QoS configuration is working, is for the counters in the policy-map interface command to increment.
So, for example, in the output your provided:
Class-map: VOICE (match-any)
3860628 packets, 1070196895 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: protocol sip
97348 packets, 49867304 bytes
5 minute rate 0 bps
Match: protocol rtp
3763280 packets, 1020329591 bytes
5 minute rate 0 bps
Match: access-group name NEC-PBX
0 packets, 0 bytes
5 minute rate 0 bps
Priority: 40% (340 kbps), burst bytes 8500, b/w exceed drops: 5
You can see that you're seeing packets under SIP and RTP, but not NEC-PBX. If you know you're getting SIP and RTP traffic across a link, you should see the packet counts increment and that's a reasonable way to know that your configuration is basically working.
It seems I knew the answer to my own question already essentially;
To aggregate layer 2 links and QoS them I must define the service insances to match each VLAN (rather than one VLAN per cusomer the same set of VLANs are being trunked down to all customers so they all fall under one class-map);
class-map match-any tripple-play
match service instance ethernet 10
match service instance ethernet 20
match service instance ethernet 30
policy-map PE-QOS-CPE-OUT-PARENT
class tripple-play
service-policy PE-QOS-CPE-OUT
interface gi0/1
switchport trunk allowed vlan none
switchport mode trunk
service-policy input PE-QOS-CPE-IN
service-policy output PE-QOS-CPE-OUT-PARENT
service instance 10 ethernet
description voice
encapsulation dot1q 10
rewrite ingress tag pop 1 symmetric
bridge-domain 10
service instance 20 ethernet
description video
encapsulation dot1q 20
rewrite ingress tag pop 1 symmetric
bridge-domain 20
service instance 30 ethernet
description data
encapsulation dot1q 30
rewrite ingress tag pop 1 symmetric
bridge-domain 30
Best Answer
The problem you describe is explained by Tassos (CCIE #19858) in the attached link below. I've copied his complete description and added the Cisco bug which relates to the problem you have.
Please notice, that the issue has been fixed on the newer enhanced ME 3400-E.
Cisco bug report for those who do not have access to Cisco:
ME3400 - inconsistent rate for hw shaper when queue-limit is changed CSCsz52950
Tassos source: https://ccie-in-3-months.blogspot.com/2010/01/shaper-granularity-on-me-3400.html
Cisco bug search (requires CCO login): https://bst.cloudapps.cisco.com/bugsearch/bug/CSCsz52950