How to post a new entity containing proxied subenties

You shouldn't need to do all that. The problem you are getting is because you are missing the proper cascades in your association. I assume it was a mistake. Unless of course you have a good reason to not have any cascade in your mapping, in this case your solution is fine.
But if it's not case, you should just add TCascadeType.SaveUpdate and TCascadeType.Merge to the association. Or, even better, add all but remove, which is the recommended cascade for single associations:

    [ Association( [ TAssociationProp.Lazy ], CascadeTypeAllButRemove ) ]
    [ JoinColumn( 'toimittaja', [ ] ) ]
    FSupplier:proxy<TSupplier>;