Thank you for your reply.
Does the manual somewhere state that set_contact_alias() should not be used for REGISTER? Actually, some examples suggest using this instead of fix_nated_contact() - http://www.evaristesys.com/blog/server-side-nat-traversal-with-kamailio-the-...
The reason for using set_contact_alias() instead of fix_nated_contact() is that one client seemed to have an issue with the contact being changed.
I'm actually using in on an edge proxy and already using Path, but I guess I missed setting this on the edge: modparam("path", "use_received", 1)
Fixed it already temp with a subst on the reply for REGISTERs, as you wrote.