I'd like to share a few explanations about the differences between Model Initialization and Diagram Context:

In both menus, it is possible to declare variables that will be used along the model, but there are a few fundamental differences to be understood
Diagram prevails over Model Initialization
In case a variable A = 1 is declared in Model Initialization and then declared in the same level A = 2 in Diagram, the value to be used on that level and downward is A = 2.
A variable declared in Model Initialization may be modified in levels below, which will affect that variable all levels above
Although a variable A was created in the Model Initialization, it may be modified in a certain level, affecting its value not only downwards, but also upwards
A variable declared in Diagram may be modified in levels below, but this will not effect the variable in levels above
Different from the Model Initialization, if a variable A was created in Diagram, it may be modified in a certain level and it will affect only its value downards, not upwards
It is possible to use the SetSignal block to set a variable value locally
It is possible to use the SetSignal block to set a variable value locally which has the same name of another variable declared in Model Initialization, meaning that in all levels below it will still have the same value declared in Model Initialization
I hope this brief explanation will help you understand the differences between these two important features.
Regards,
Roberta