Hi Lydia,
I think the problem is that instead of a semantic comparison, Wikibase does a pure string comparison to check if two timestamps are equal. I changed the primary sources tool on the weekend because there was a bug in the serialization according to the TSV format specification (it failed a roundtrip serialize-parse test), which says the year in a timestamp is 11 digits, 0-padded if necessary (i.e. +00000001947 instead of +1947). This might have broken the comparison.
The weird thing is that later (probably when storing the value in the database), Wikibase does the right thing (i.e. parses the year even including leading 0's). So I guess the comparison is happening before that.
I can fix that by rolling back my change that introduced the 0-padding, but the consequence is that it will no longer follow the definition at
http://tools.wmflabs.org/wikidata-todo/quick_statements.php . Or we change the Javascript frontend part to eliminate all padding 0 before sending the timestamp to the API. But since 0-padding is semantically valid for numbers, I'd prefer to have a look in the Wikibase backend. There might be other situations affected by string comparison issues.