The 9th Century BC date for Kurukshetra war is arrived at based on the discredited Aryan Invasion Theory, which is inspired by the Biblical studies in 18th century, based on which the Biblical God created this world in around 4000 BC!
The calculations based on archeo-astronomy (ie based on planetary positions) is not vague and cannot be easily dismissed. It is having very high coherence with the various dates and corresponding planetary positions mentioned in Mahabharata epic. Inferences based on archeology are not conclusive as archeology is like an unfinished painting. New archeological discoveries can happen any time, new ancient sites can be unearthed any time and the data can swing in any direction.
The dates for Kurukshetra War arrived at using archeo-astronomy (3067 BCE) is close to the traditional date (3138 BCE) given to it by the Hindu tradition supported by ancient mathematicians like Aryabhata. This error of 71 years is reasonable, since it happened 5000 years ago.
We cannot under-estimate our own traditions and dismiss them so easily, especially since Indian mathematicians were the first to use decimal system, precise numerical measurements, geometry and algebra. The West came to know about Indian mathematics through Arab traders and till then they were using the crude Roman Numerals (I, II, III, IV …) which limited their ability to analyze large numbers or do basic mathematics like addition, subtraction, multiplication and division properly. This is why their world view was so crippled and childish, thinking that the world was created in 4000 BC. For them, 4000 BC was too huge a number and too distant into the past.
The points like 1) start of Iron age in India, assuming that it started in 10th century and that 2) place names found in Mahabharata matches with the place names found in Buddhist period of 6th century BC - are too crude to put any accurate date on Mahabharata. All it proves is that Mahabharata is older than Buddhist period of 6th century BC and Iron age start of 9th century BC, but it does not put any upper limit to the ancientness of the events described in Mahabharata.
However it is true that Mahabharata grew from its humble beginnings in 3000 BCE with additions from redactors who narrated it to various audience. This continued till the emergence of Buddhist era. We cannot find any reference to Buddha in Mahabharata. So Mahabharata reached a near frozen state before the birth of Buddha.
Plus, the 6th century BCE date of Buddha is disputed. There are evidences indicating that Buddha lived in 9th century BCE. Even though AIT is now discredited, even by its former supporters like Romilia Thapper, the dates arrived at using this erroneous theory is not yet corrected and all dates related to the ancient history of India is compressed into the time frame of 1600 BCE to 100 BCE. Similarly the Iron age start date for India at 10th century BCE is also questionable. We cannot say with any certainity that Indians did not knew about Iron before 10th century BCE. The whole division of human cultural evolution as stone-age, bronce-age and iron-age is now disputed and under revision.