'I would do anything' expresses potential future action in the present time. That is to say, the speaker has the desire at present to undertake any activity for the other person in the future.
'I would have done anything' states that at a certain time in the past, the potential to do something existed, but does not any longer. That is to say, the speaker had the desire to undertake any activity for the other person, but the opportunity never came into being, and so the speaker never had the chance to undertake the activity.
Saying 'I would do anything for you' means that you are telling the other person that at any time in the future, you will undertake any activity for that person. Saying, 'I would have done anything for you' means that at some point in the past, you wanted to undertake any activity for that person, but the time for that action has come and gone.