What's wrong with the "cycle"? EF uses them all the time, and bi-directional navigation is quite useful! Of course, it breaks when trying to serialize, but you shouldn't be doing that anyways :).
As to your question, if a City "has" multiple Towns, and a Hospital is in a town, then there is no need for a Hospital to know about a City. It knows what town it is in, and thus what City it is in. Of course, if a given Town can be in more than one City, (but the Hospital is in one unique pair) then your design looks perfect.
With the information you gave, I would just remove the "City" property from the Hospital class altogether. If you need to access it, just go through the Town property.
myHospital.Town.City