i had this problem before as well, and i think the one thing most members overlook is that, when you are creating the heightmap, besides being grayscale and evenly proportioned as well as in a .png format, it must have a bit depth of 8.
to find the bit depth of the image, right-click on the image and go to properties > details and in the list below under 'image', there should be a category called 'bit depth'. if the bit depth is anything other than 8, i.e. 16, 34, etc. then it simply means there is a large variation of grays.
to change the bit depth is quite tricky, and i only know how to do so in photoshop elements (not sure if the elements method would work in newer versions, either). if you do not have photoshop, i recommend googling how to change the bit depth in whatever software you may have. however if you do have photoshop, let me know and i will share with you my method to see if you are able to in your version.
i hope this helped!!