What you are doing wrong? You write code in a monstrous, inaccurate way, hard-code immediate constants
and don't use the debugger to solve your simple problem. You also give bad names to variables.
For example, your first condition could look better:
const byte decisionMin = 1;
const byte decisionMax = 9;
string decisionInput = Console.ReadLine();
if (!byte.TryParse(out decision))
if (decisionMin <= decision && decision <= decisionMax)
And so on…
Just write everything 1) accurately; 2) using your brain; 3) understanding what you are doing in every line; and you will get your results. In even the slightest concerns about your runtime, always use the debugger.