How to force iCloud profile photo to update
As you have done major steps like clearing cache, the following is a tweak which also allows you to sync the photo in all your Apple devices. Keep this a try 


First, open Messages from your iPhone.  
Tap the ellipsis (•••) button at the top, then "Share Name and Photo." 


Once you see the Share your Name and Photo with the Friends splash screen, tap the "Choose Name and Photo" button to continue. On the next screen, your Display Name will be listed as whatever name is associated with your Apple ID, but you can change it to whatever you want. Only one field needs to be filled out, so you can just choose a first or last name or special moniker or nickname.

As for the photo, if you've set a custom photo for yourself in the Contacts app or have already created a Memoji, you'll see those options in the large circles above your display name. You can swipe through the options and select the one you'd like to use. If you want something different, there should be a "View More" option in one of the circles.

Once you've selected one you like, tap the "Continue" button at the bottom, and you'll get a prompt asking to "Use This Photo Everywhere?" It states that using the new image will change the photo associated with your Apple ID and in your My Card in the Contacts app. Tap "Use" to continue.



On the last page, you'll be asked to choose who you share your name and photo with. You can choose to share it automatically with "Contacts Only" or one a case-by-case basis with "Always Ask."

By default, "Always Ask" is recommended to maximize your privacy, which will display a permissions prompt within each conversation's thread, where you can choose "Share" or hit the (x) to keep it hidden.

This tweak might help you to sync the photo.