When both SNAT and an outbound traffic-policy have been configured, translations will happen before traffic policy comes into action. So, if a traffic-policy has been configured to classify traffic according to addresses, that will not work, as traffic-policy will see translated addresses. So very likely all the traffic will end up in its default class.
Fortunately that can be solved by VyOS CLI, as explained here.
Without SNAT, VyOS CLI also allows you to configure "ingress shaping" through an IFB. Here is the explanation.
The missing part is a CLI solution for an inbound traffic-policy when there is SNAT. I have not found the way to configure it through CLI.
As it is perfectly possible to successfully have Ingress Shaping with SNAT as explained here, it would be nice to fill that CLI gap in order to have a complete QoS solution for the most common scenarios.