Old Data Being Cached on a Per-Layer Basis?
It may be tricky to explain what's happening, but I'll try:

I created a JSON file from scratch, and ran it through jsonlint.com to validate it. I created the element in Sketch I wanted to populate, and ran the data file through Sketch Data Populator. The first time, it operated fine. But after some tweaking, I wanted to change some of the data - (specifically, shorten the names of some of the properties so I didn't have to have wide text boxes to accommodate them).

The new variable names weren't going through, however, and in fact I discovered that the entire value of the field was being overwritten with what had previously been put in by Sketch Data Populator. So for example, if the field was "Pencils, {var1}, and pens", and I changed it to, "!!! Pencils! {var1}, and pens!!!", Sketch Data Populator would parse the data with no apparent errors, but the field would read, "Pencils, crayons, and pens" instead of "!!! Pencils! crayons, and pens!!!" 

I tried quitting Sketch and reopening it, and even uninstalling Sketch Data Populator and reinstalling, but nothing worked. But finally, I was able to circumvent the problem by creating entirely new objects instead of simply duplicating the old ones. This seemed to be a serviceable workaround.

Unfortunately I can't share the files since I'm under an NDA. I'd been working in the file for some time, and without knowing more about how the plug-in works, I can't offer much help on how to replicate, especially since I don't remember what all I did or how it happened.
