How often do you expect a null? If (and only if) it will be infrequent, I would use
try
{
var town = staff.HomeAddress.Postcode.Town;
// stuff to do if we could get the town
}
catch (NullReferenceException)
{
// stuff to do if there is a null along the way
}