Source: original source code
Technically, func getdirtyreplies() in slavedialogues.gd seems to be missing the scaling to variables.pregduration in various instances, still using hard coded numbers. Noting here that you seem to use "race == 'Goblin'" to half the value, which also is amiss.
There is also a Line 976 in Mansion.gd (regarding onset of lactation) still only conditioning "person.preg.duration > 10", probably foregoing it if the var is smaller than that. For 'Goblin's its actually patched.
There is also a Line 1226 in outside.gd stating the reqs = "person.preg.duration >= 5" for 'abortion' not scaling.
On an unrelated note, in func childbirth(person) in Mansion.gd you set person.preg.fertility = 5. I did not find a line where it (eventually?) returns to the supposed normals (10/20).