your config looks OK to me. Yep IP Pres is apart of DSCP so this should be shown in this part of the packet. I've not used policy routing to mark packets so am not sure of the show commands associated. Have you tried using a class based packet marker. With this you can do a show "polciy map" to make sure packets are being marked.

I've been having the same problem on a test setup with a 3620 running IOS 12.2(13)T9. The "set" statement I can get to work is the "set next-hop". I can't get the "set ip precedence" nor the "set ip tos" commands to work. I think why your "debug ip policy" looks like it is working is because it works for the "next-hop", but fails for the other. (Try removing the "set next-hop" statement from your config. and try it again. My debug shows the match, but rejects the policy) That's why you don't see the change in the packets you've sniffed.

Seems like the "ip policy route-map VOIPxxx" works for routing, when you set the next-hop, but fails when you're trying to set a precedence.

The "service-policy input VOIP" seemed to work when setting a precedence. You can see that by using the "show policy-map interface" command which will show the packets marked. Unfortunately, I haven't found a debug option that shows what is happening in real-time.