To tackle the given problem, we first need to translate the natural language description into a symbolic representation of an optimization problem. The variables involved are 'chicken drumsticks' and 'kiwis', which we can represent symbolically as \(x_1\) and \(x_2\), respectively.

The objective function described is to minimize \(1 \times x_1 + 8 \times x_2\), where \(x_1\) represents the quantity of chicken drumsticks and \(x_2\) represents the amount of kiwis.

Next, we have several constraints:
1. The total grams of fiber from both sources must be at least 60 grams: \(1.86x_1 + 8.95x_2 \geq 60\).
2. This constraint is repeated in the description but seems to be an error since it's identical to the first one.
3. A more complex constraint involving the quantities of chicken drumsticks and kiwis: \(-8x_1 + 10x_2 \geq 0\).
4. The total grams of fiber from both sources must not exceed 139 grams: \(1.86x_1 + 8.95x_2 \leq 139\).

The symbolic representation in the requested format is:
```json
{
    'sym_variables': [('x1', 'chicken drumsticks'), ('x2', 'kiwis')],
    'objective_function': 'minimize 1*x1 + 8*x2',
    'constraints': [
        '1.86*x1 + 8.95*x2 >= 60',
        '-8*x1 + 10*x2 >= 0',
        '1.86*x1 + 8.95*x2 <= 139'
    ]
}
```

Now, let's implement this optimization problem using Gurobi in Python:

```python
from gurobipy import *

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

# Add variables to the model
x1 = m.addVar(vtype=GRB.CONTINUOUS, name="chicken_drumsticks")
x2 = m.addVar(vtype=GRB.CONTINUOUS, name="kiwis")

# Set the objective function
m.setObjective(1*x1 + 8*x2, GRB.MINIMIZE)

# Add constraints to the model
m.addConstr(1.86*x1 + 8.95*x2 >= 60, "Fiber_From_Foods")
m.addConstr(-8*x1 + 10*x2 >= 0, "Complex_Constraint")
m.addConstr(1.86*x1 + 8.95*x2 <= 139, "Total_Fiber_Limit")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found:")
    print(f"Chicken Drumsticks: {x1.x}")
    print(f"Kiwis: {x2.x}")
    print(f"Objective Function Value: {m.objVal}")
else:
    print("No optimal solution found")
```