TimelinePlot - Handling dates prior to Year Zero
DateObject
seems to get the job done, e.g.:
"Yayoi" -> Interval[{DateObject[{-300}], "250"}]
It may not be able to help since it has been a while, but the problem was the string format of dates:
In[69]:= DateList["-300"]
Out[69]= {300, 1, 1, 0, 0, 0.}
In[70]:= DateList[{-300}]
Out[70]= {-300, 1, 1, 0, 0, 0.}
Besides Mr.Wizard♦'s suggestion, DateFunction can also be used.
TimelinePlot[data, ImageSize -> {Automatic, 300}, DateFunction -> ({ToExpression@#} &)]
Note that there is another anomaly in the plot; that is "Heian" is blocked by "Kofun", and that is because the dates in the interval for "Heian" is reversed. Fixing it will produce a correct TimelinePlot.
"Heian" -> Interval[{"794", "185"}],