An end date will always "bubble up" through the different item levels. Post Gantt, you can no longer manually override an end date at a stage gate, element, stage or the overall grid level (project).
End Dates are inherited from their subordinates: An element end date will always reflect the end date of the latest task end date within in. This logic is the same all through the grid. A stage end date will reflect the latest element or stage gate end date within in. And a grid end date will reflect the latest stage end date from within the grid.
The logic is as follows: Tasks -> Elements & Stage Gates -> Stages - Grids
To schedule end dates. You will need to enter the end date in the lowest subordinate available. In the image above, this would be at task level for Stage 1 and element level at Stage 2 (as this element has no tasks).
You can remove these end dates at the lowest level as such:
Please Note:
Within the Gantt Chart, once you add an End Date to to an item, the Gantt will update. It will show Constraint Date, End Date & Start Date all equal to the End Date, the Constraint Type set to 'Must Finish On', and the Duration set to '0 Days'. See here:
Please feel free to check out the Gantt options for information on adding and removing end dates in more detail.