To solve the given optimization problem using Gurobi, we need to first define the decision variables and then formulate the objective function along with all the constraints.

The decision variables are:
- `x0`: milligrams of vitamin E
- `x1`: milligrams of vitamin D
- `x2`: milligrams of vitamin B6

The objective function is to maximize: `8*x0 + 1*x1 + 8*x2`

Constraints:
1. The immune support index for each vitamin times its amount should not exceed the given bounds when combined as specified.
   - For vitamin E and D: `1.79*x0 + 1.9*x1 <= 77`
   - For vitamin D and B6: `1.9*x1 + 0.03*x2 <= 65`
   - For all three vitamins: `1.79*x0 + 1.9*x1 + 0.03*x2 <= 48` (this constraint is repeated but will be included as it's part of the problem statement)

Given the problem, we don't have explicit upper bounds for each vitamin individually, so we'll focus on the combined constraints provided.

Here's how you could implement this in Gurobi using Python:

```python
from gurobipy import *

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

# Define the decision variables
x0 = m.addVar(name="milligrams_of_vitamin_E", lb=0, ub=GRB.INFINITY, vtype=GRB.CONTINUOUS)
x1 = m.addVar(name="milligrams_of_vitamin_D", lb=0, ub=GRB.INFINITY, vtype=GRB.CONTINUOUS)
x2 = m.addVar(name="milligrams_of_vitamin_B6", lb=0, ub=GRB.INFINITY, vtype=GRB.CONTINUOUS)

# Define the objective function
m.setObjective(8*x0 + 1*x1 + 8*x2, GRB.MAXIMIZE)

# Add constraints
m.addConstr(1.79*x0 + 1.9*x1 <= 77, name="vitamin_E_and_D_constraint")
m.addConstr(1.9*x1 + 0.03*x2 <= 65, name="vitamin_D_and_B6_constraint")
m.addConstr(1.79*x0 + 1.9*x1 + 0.03*x2 <= 48, name="all_vitamins_constraint")

# Optimize the model
m.optimize()

# Print results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found.")
    print("Milligrams of Vitamin E:", x0.x)
    print("Milligrams of Vitamin D:", x1.x)
    print("Milligrams of Vitamin B6:", x2.x)
    print("Objective Function Value:", m.objVal)
else:
    print("No optimal solution found. Status:", m.status)

```