I built my own in the end. I created a folder to store a collection of new avatar images for the user to select from. Clicking on the avatar fired an ajax event which:
1) validated a nonce
2) checked it was the users profile
3) got all the avatar images + filtered the the array based on the ID of the image that the user selected, this allowed me to get the full file path of the selected avatar image
4) check for the users “avatar” folder, if it doesnt exist create it. If we have an existing avatar image we need to clear it first.
5) finally copy the image into the “avatar” folder, making sure to name it correctly.
In order to ouput the avatar selection I created a plugin and page under the profile section