To solve the given optimization problem using Gurobi, we first need to understand and possibly simplify the constraints provided. 

1. **Objective Function**: Minimize \(6 \times \text{hours worked by Mary} + 2 \times \text{hours worked by Ringo}\).

2. **Constraints**:
   - The total combined organization score from hours worked by Mary and Ringo must be equal to or greater than 24.
   - The total combined productivity rating from hours worked by Mary and Ringo must be 25 or more.
   - \(9 \times \text{hours worked by Mary} - 2 \times \text{hours worked by Ringo} \geq 0\).
   - The total combined organization score from hours worked by Mary and Ringo has to be 62 or less.
   - The total combined productivity rating from hours worked by Mary and Ringo must be equal to or less than 121.

Given the organization scores and productivity ratings for Mary and Ringo:
- Mary's organization score: 12, Productivity rating: 13
- Ringo's organization score: 19, Productivity rating: 12

Let \(x_0\) be the hours worked by Mary and \(x_1\) be the hours worked by Ringo.

The constraints can be formulated as follows:
1. Organization Score Constraint: \(12x_0 + 19x_1 \geq 24\)
2. Productivity Rating Constraint: \(13x_0 + 12x_1 \geq 25\)
3. Custom Constraint: \(9x_0 - 2x_1 \geq 0\)
4. Upper Bound Organization Score Constraint: \(12x_0 + 19x_1 \leq 62\)
5. Upper Bound Productivity Rating Constraint: \(13x_0 + 12x_1 \leq 121\)

Since we are minimizing and there are constraints on both the lower and upper bounds of the combined scores, we need to ensure that our solution respects these limits.

Now, let's write the Gurobi code for this problem:

```python
from gurobipy import *

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

# Define variables
x0 = m.addVar(vtype=GRB.INTEGER, name="hours_worked_by_Mary")
x1 = m.addVar(vtype=GRB.CONTINUOUS, name="hours_worked_by_Ringo")

# Set the objective function
m.setObjective(6*x0 + 2*x1, GRB.MINIMIZE)

# Add constraints
m.addConstr(12*x0 + 19*x1 >= 24, name="organization_score_lower_bound")
m.addConstr(13*x0 + 12*x1 >= 25, name="productivity_rating_lower_bound")
m.addConstr(9*x0 - 2*x1 >= 0, name="custom_constraint")
m.addConstr(12*x0 + 19*x1 <= 62, name="organization_score_upper_bound")
m.addConstr(13*x0 + 12*x1 <= 121, name="productivity_rating_upper_bound")

# Optimize the model
m.optimize()

# Print the solution
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print("Hours worked by Mary:", x0.x)
    print("Hours worked by Ringo:", x1.x)
    print("Objective function value:", m.objVal)
else:
    print("No optimal solution found")
```