The following change can solve the problem. The Number of the Overviewmap (the parent for the Detailmaps) in the TDB-File is the same like the number of the first Detailmap. This is the reason for the crash. Setting the number to "99999999" (seen by Garmin) solve the Problem. I believe you can do that in TdbBuilder.java in the function onFinish() with tdb.setOverview(..., "99999999"), but i am not a java-guru.
A second little error is in DetailMapBlock.java. The Order of the rgn-, tre- and lbl-Data is different in the constructor and the function write(). My suggestion is, take the same order like Garmin: lbl, rgn, tre, net, nod, dem.