I can't change the IP source

When you go to Shield's General Settings to check your IP address, you will see that the default source detection is REMOTE_ADDR.

The first thing to do is to check if the IP address represented by REMOTE_ADDR is correct.

If you change this source and choose i.e. HTTP_CF_CONNECTING_IP from the drop-down list, it might happen that it reverts to REMOTE_ADDR.

Why does this happen?

The IP source may be accepted when you save it, but if the plugin ever detects an incorrect or invalid IP address for that source, it'll revert to auto-detect.

It wont ever change unless and invalid IP address is found. 

So, while the IP is being detected correctly, there are some instances on that hosting where the IP address isn't being correctly parsed by the server and PHP is receiving the incorrect IP.

To understand the Shield plugin and the visitor IP address detection better, read the article here.