The following constraints must be respected.
The plane cannot seat more than 30 passengers.
What you know is that:
- At first, the plane contains passengers that travel from Ithaca to Boston and Ithaca to Newark
- After landing in Newark, the place will board passengers from Newark to Boston while seating passengers from Ithaca to Boston.
Therefore, $X_{IN} + X_{IB} \le 30$ and $X_{IB} + X_{NB} \le 30$ are necessary constraints. Here, $X_{IN} = X_{IN}^Y + X_{IN}^M + X_{IN}^B$ (and similarly for $X_{IB}$, $X_{NB}$).
Number of available tickets cannot exceed forecasted demand.
As an example, let's take the constraints related to $X_{IN}$.
$$
0 \le X_{IN}^Y \le 4, \qquad 0 \le X_{IN}^B \le 8, \qquad 0 \le X_{IN}^M \le 22.
$$
As pointed out in the comments, it is better to explicitly write down each constraint separately. Indeed, $X_{IN} \le 4 + 8 + 22$ would not contain any information about the upper bound of each fare class.
Maximize revenue.
Similarly to what you already proposed, this gets translated into maximizing
$$
Z := 300X_{IN}^Y + 220X_{IN}^B + 100X_{IN}^M + (\text{amounts related to other variables})
$$
Your approach seems to mix 0/1 programming with linear programming, particularly in the last set of equations. How are they meant to be interpreted?
Problem encoding in MiniZinc
var 0..4: a;
var 0..8: b;
var 0..22: c;
var 0..8: d;
var 0..13: e;
var 0..20: f;
var 0..3: g;
var 0..10: h;
var 0..18: i;
var int: revenue = 300*a + 220*b + 100*c + 160*d + 130*e + 80*f + 360*g + 280*h + 140*i;
constraint a + b + c + d + e + f <= 30;
constraint a + b + c + g + h + i <= 30;
solve maximize revenue;