Backport cross-client fixes to Narrative Invoice