Thanks for your feedback, but in the end the problem was that I was targeting the wrong object. I missunderstood the difference between custom properties and custom xml parts.
Rather than targeting the document's custom properties object like so:
props = new DocumentFormat.OpenXml.CustomProperties.Properties();
I should have been targetting the document's custom xml parts like so:
var customWorkBookVersionXmlPart = wb.WorkbookPart.AddCustomXmlPart("application/xml");