"All I get is a black console screen"
After 23 is inserted, your Insert() method gets stuck in the while loop because 45 is never less than 23:
while (true)
{
parent = current;
if (i < current.Data)
// you never get in here, so we just loop around in "while (true)"