When a JSON Resume render goes wrong, the schema is almost never the problem. The theme package is.
JSON Resume has been at version 1.0.0 since 2014. A resume.json written years ago still parses in current tools.
Each theme is a separate npm package on its own release schedule. It decides which sections appear and how dates look.
jsonresume-theme-even 0.26.1 ships no template engine at all. Dates are formatted in its own code with the locale fixed.
jsonresume-theme-elegant 1.16.1 still depends on handlebars and moment, so there the date format really does live in a template.
No Handlebars in the list means the formatting isn't in a template, and no amount of configuration will move it.
Demo data is always complete and well-formed. Yours has the gaps, which is where a theme quietly drops a section.
A resume.json renders the same whether its claims are true or not. See what closes that gap.