To solve this optimization problem using Gurobi, we first need to understand and translate the given constraints and objective function into a mathematical model. The goal is to maximize the objective function subject to the specified constraints.

The objective function to be maximized is: $7 \times \text{cafeteria chairs} + 8 \times \text{black pens} + 4 \times \text{usb flash drives}$.

Given constraints:
1. Sustainability score constraint for cafeteria chairs, black pens, and usb flash drives.
2. Cost constraints for each item and their combinations.
3. All variables (quantities of items) must be integers.

Let's denote the number of cafeteria chairs as $x_0$, the number of black pens as $x_1$, and the number of usb flash drives as $x_2$.

The sustainability score constraint for all items combined is given as: $9x_0 + 12x_1 + 8x_2 \leq 125$. However, there seems to be a discrepancy in the problem statement regarding the total combined sustainability score. It's mentioned that it should not exceed 51 when considering cafeteria chairs and black pens, but later it's stated that the total for all items should be no more than 51 as well, which conflicts with the initial upper bound of 125 provided. For clarity and to adhere strictly to the constraints given at the beginning, we'll consider the constraint $9x_0 + 12x_1 + 8x_2 \leq 125$ for all items combined.

The cost constraints are:
- Cafeteria chairs plus black pens plus usb flash drives should not exceed $67: $x_0 + x_1 + x_2 \leq 67$.
- Black pens and usb flash drives must cost a total of at most $67: $x_1 + x_2 \leq 67$.
- Cafeteria chairs plus usb flash drives should not exceed $35: $x_0 + x_2 \leq 35$.

All variables are integers, as stated.

Now, let's implement this in Gurobi:

```python
from gurobipy import *

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

# Define the variables
x0 = m.addVar(vtype=GRB.INTEGER, name="cafeteria_chairs")
x1 = m.addVar(vtype=GRB.INTEGER, name="black_pens")
x2 = m.addVar(vtype=GRB.INTEGER, name="usb_flash_drives")

# Set the objective function
m.setObjective(7*x0 + 8*x1 + 4*x2, GRB.MAXIMIZE)

# Add constraints
m.addConstr(9*x0 + 12*x1 + 8*x2 <= 125, "Sustainability_Score_Constraint")
m.addConstr(x0 + x1 + x2 <= 67, "Total_Cost_Constraint")
m.addConstr(x1 + x2 <= 67, "Black_Pens_and_USB_Flash_Drives_Cost_Constraint")
m.addConstr(x0 + x2 <= 35, "Cafeteria_Chairs_and_USB_Flash_Drives_Cost_Constraint")

# Optimize the model
m.optimize()

# Print the solution
if m.status == GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Cafeteria Chairs: {x0.x}")
    print(f"Black Pens: {x1.x}")
    print(f"USB Flash Drives: {x2.x}")
else:
    print("No optimal solution found.")
```