Calling CustomProperties.setCodePage does not work because it appears to create a CustomProperty without a name, and this isn't supported by other areas of the code (such as CustomProperties.put (CustomProperty). The workaround is to create your own CustomProperty, set all the attributes and add it to the CustomProperties set with CustomProperties.put("PID_CODEPAGE", CustomProperty).
This bug references a very old version of POI. Does the problem as described still apply?
No update for a long time => closing this for now. If this is still a problem for you please verify with a recent version of POI and reopen this bug with more information, ideally a unit-test that can be used to reproduce the problem.