I don't think SQLite effectively enforces the uniqueness of the primary key.
A primary key, by definition, must be unique.
I suspect the problem here is that SQLite, by default, doesn't treat indexed values as case-insensitive unless they are specifically defined that way.
So, for example, in SBS/BaseStation you can have two different records with ModeS values of, say 40094F and 40094f (where the latter has been populated manually or via a third-party application).
This scenario is known to cause problems in BaseStation, it might well be the same in RadarBox unless indexes have been explicitly defined as case-insensitive.