The Kartographer extension gzip-encodes the JSON data it stores in page properties:
https://github.com/wikimedia/mediawiki-extensions-Kartographer/blob/55d8845203f9d18563bdee54fa46fb4987472bb0/includes/Tag/TagHandler.php#L325
The gzip-encoded data is a *bytestream*, not a set of unicode characters, and so it cannot be properly exported by the parse API, eg:
https://en.wikipedia.org/wiki/Special:ApiSandbox#action=parse&format=json&text=%3Cmaplink%20text%3D%22%5B%5BFile%3AOpenstreetmap%20logo.svg%7C20px%7Clink%3D%7CKartographer%20map%20based%20on%20OpenStreetMap.%5D%5D%22%20zoom%3D%2213%22%20latitude%3D%2251.989330%22%20longitude%3D%225.847360%22%20class%3D%22no-icon%22%3E%7B%20%22type%22%3A%20%22Feature%22%2C%20%22geometry%22%3A%20%7B%20%22type%22%3A%22Point%22%2C%20%22coordinates%22%3A%5B5.847360%2C%2051.989330%5D%20%7D%2C%20%22properties%22%3A%20%7B%20%22marker-symbol%22%3A%22camera%22%2C%20%22marker-size%22%3A%20%22large%22%2C%20%22marker-color%22%3A%20%220050d0%22%20%7D%7D%3C%2Fmaplink%3E&ascii=1&formatversion=2
turns all the embedded nulls in the gzip data into unicode "unknown" characters, \uFFFD. This corrupts the gzip stream and so the data exported by the API cannot be decoded.
Page properties should probably be exported as bytestreams, not strings. I'm not sure the correct way to do this in the ApiResult API, though.