To solve this problem, we first need to define the decision variables and the objective function. Let's denote the number of acres for planting tulips as \(T\) and the number of acres for planting orchids as \(O\).

The cost for seeds per acre is $15 for tulips and $40 for orchids. The profit per acre from selling tulips is $75, and from selling orchids is $105.

The total budget for seeds is $1200. Therefore, the constraint related to the seed budget can be represented as \(15T + 40O \leq 1200\).

Since the grower has 120 acres of land in total, another constraint is that the sum of the acres used for tulips and orchids cannot exceed 120 acres: \(T + O \leq 120\).

Both \(T\) and \(O\) must be non-negative since you cannot plant a negative number of acres.

The objective function to maximize profit can be written as \(75T + 105O\), since the profit per acre from tulips is $75 and from orchids is $105.

Now, let's translate this into Gurobi code in Python:

```python
from gurobipy import *

# Create a new model
m = Model("Flower_Grower")

# Define variables
T = m.addVar(vtype=GRB.CONTINUOUS, name="tulips", lb=0)
O = m.addVar(vtype=GRB.CONTINUOUS, name="orchids", lb=0)

# Set the objective function
m.setObjective(75*T + 105*O, GRB.MAXIMIZE)

# Add constraints
m.addConstr(15*T + 40*O <= 1200, "budget")
m.addConstr(T + O <= 120, "land")

# Optimize model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Tulips: {T.x} acres")
    print(f"Orchids: {O.x} acres")
    print(f"Maximum Profit: ${75*T.x + 105*O.x}")
else:
    print("No optimal solution found.")
```