The correct option is B Able was an old shepherd who lived on a hill.
The adjective 'old' is placed before a noun because it modifies the noun. There are very rare cases - like in poetry - where an adjective follows a noun. This not being a poetic line, we need to change the sentence. Hence, option D is incorrect. Similarly, in option C, 'old' follows the noun 'hill' which isn't the correct placement, hence option C is incorrect. In option B, the adjective 'old' precedes the noun 'shepherd' and modifies it in terms of age. Since the sentence has the correct grammatical structure, option B is correct. A 'hill' is a geographical form of the earth's surface. However, the word 'old' is generally used to refer to people. Hence, option A is also incorrect.