TL;DR: In any case, I would suggest to stay positive. Try to turn the things like you are not raising a conflict of interests by asking something for yourself. Try to convince your client that you have the same goals, to make the job done at minimal cost and maximum quality.
Also, resolving an existing problem prior doing anything else seems to be a good idea to me as it will help you both keep your face and avoid loss of reputation/respect.
You have actually done a good insight into the problem. Let me focus on the following ideas:
You have highlighted what's wrong with the client, but you did not look what you have probably done wrong. Think of it for yourself and learn from it:
- Have you communicated with them often enough?
- Are you sure they were aware that you are on the right track?
- Have you raised the unsolved issues (like poor communication) early or let them stay unresolved?
Get to a mutual agreement of how you wrap up the work done in the past. I would not go ahead with any future tasks without it.
Get to a principal decision on any future work. I mean, one of the possible outcomes may appear a decision just to throw this client away and look for another project for yourself. You said you want to keep the client, but reading your description I would probably decide to forget it;
Get a written contract that will govern what you do and how. Ultimately, it should define:
- Type of job, fixed scope + fixed price or per-hour work + flexible scope;
- In case of flexible scope, define very thoroughly how the scope is defined (certainly, not in a bunch of emails or, worse, over the phone) and what are success criteria to decide whether the job is done or not;
- Don't forget about milestones and deadlines as well;
- Hourly rate or the final cost;
- Terms on overdue delivery and overdue payment;
- Terms on communication; weekly calls?
- Terms on any extra payments like hosting or whatever; who's responsible for that? when and how it would be done?
- Type of job, fixed scope + fixed price or per-hour work + flexible scope;
From my experience, I'm not really surprised by a client who does not like emails and prefers phone calls. Schedule your communicationSchedule your communication in a way that satisfies everyone.