Once chrome instance is launched, you can't change the proxy, as the changes to capabilities have no effect. But there is a workaround to the issue. You have to use a local proxy, which will target the parent proxies(your desired proxies). In this way you create the proxy chain. And when you want to change the target proxy, you just have to reconfigure the local one, so it targets the new server. Your chrome instance continue to communicate with the local one.
I'm using the squid Cache
You set your target proxy like this
cache_peer PARENT_IP parent PARENT_PORT 0 no-query default login=USERNAME:PASSWORD connect-fail-limit=99999999 proxy-only
never_direct allow all
in squid's config
You have to script file modification every time, you want to set the new proxy. Afterward point squid to reread the configuration.
$ squid -d 0 -k reconfigure
I've wrote more in depth article to the problem:
https://dev.kit.eco/selenium-webdriver-for-chrome-how-to-change-the-proxy-at-runtime-a-workaround