It is not technically wrong, but it is very archaic. Native speakers would understand it, but it would sound strange to them, and they would not use it themselves.
No! "Cosa sei avuto" is really wrong! The verb is coniugate in "passato prossimo" in this sentence and it is always formed by verb "avere" + past participle
This Italian sentence is very poor! it follows and repeats the English construction. None in Italy would say that! An Italian could say: "Con cosa hai fatto colazione?" or "che hai mangiato a colazione?"