Eh *headdesk*
As of v1.8.1, possibly in v1.8. please note in the mod.json declaration, make sure your Name is a unique identifier that won't change over time. In my case, I made a mistake of including the version number in the Name field. This meant the modloader associated my declarations to the "mod title + specific version", and when I up the version, I cannot update my Name field to reflect the version number, or I would break saves.
My stupid, not the modloader's.
EDIT: Here's a fun workaround.
My mod had the param "Name" : "THI-SSW v1.6" ; This is obviously stupid, as once I upgraded to v1.7, the career save files looking for mod named THI-SSW v1.6 will be blocked -- the save files will be marked as mod not found.
However...
The way the system appears to check for mods is for the presence of a mod name, but not necessarily that the mod have the defs found in the save file (understandable really). So by writing up a mod.json with the relevant name in a separate folder, and having all the defs in another (properly named) mod, you can get around the blocked save problem.
For example, I renamed my mod to "Name" : "THI-SSW", created another (empty) mod called "Name" : "THI-SSW v1.6", made sure all my defs are in the THI-SSW mod, and the career save will load.
I don't think that's quite what is intended, but hey, it turned out to be a workable solution for PEBKAC errors.