I can only talk to our offshore team, but some of your boss's expectations seem reasonable to me and are in line with what we expect our offshore folks to do. It doesn't mean that you might not have to do them at some level as well. For instance, do they really have access to the stakeholders to get the business requirements? Maybe a more reasonable request is that they review requirements and ask questions about them. Asking them to create documents from meetings they attend is good though. More importantly, it helps you see if they understood what was said. Of course they could be resisting doing it because they actually didn't understand well enough to make the notes. You should have a project plan at a high level, they shoud be creating amore detailed one that they wil be using.
Now I say this because our offshore team has technical project managers as well as devs and so they can do this sort of thing (as well as time estimates for upcoming projects and other management tasks). If all you hired were straight devs (especially if they are all freshers), then some of these expectations could be unreasonable. These are the tasks of senior people not devs at the entry level or intermediate level even if you are onshore.
It is also level of performance that it took more than a year to get to. Remeber when you start an offshore project, you have new people who don't understand your geographuic culture, your business culture and your business and are new to the project. Not just a couple of new people but every single person is new to working on this project. It would take a long tiem for onshore people to get up to speed too if everyone was new and they have fewer things to overcome. Offshore is often perceived to be incompetent becasue of other issues that are not their fault.
So if the expectation is reasonable may well depend on the type of people you hired offshore. If you hired a team of trainees onshore, would you expect the same level of work as if you hired a team of experienced devs?
You also likely have a cultural propblem and they are as frustrated with you as your boss is with them. Devs in other countries are often managed in a far different manner than they are in the US and are allowed far less freedom of action. There is a a much stronger hierarchial approach to tasks. So they are expecting to be told exactly what to do. They often expect requirements in far more detail than you might be used to. They might expect far more documentation fo teh existing system. They might be culturally primed to use indirect methods to tell you that they disagree with something.
You and your boss need to read a book called Speaking of India. (http://www.amazon.com/Speaking-India-Bridging-Communication-Working-ebook/dp/B004AE3R3O/ref=sr_1_1?s=books&ie=UTF8&qid=1426085379&sr=1-1&keywords=speaking+of+india) I am making an assumption your offshore team is Indian, but if it is not, seach for something about the business culture of the country where they are located. And if you can't find anything ask them to recommend something and if you still can't find anything, then read this book anyway as at least it will make you understand how different cultures do busineess differently. The book is not perfect, but it will help alot.
Another thing that helps tremendously is bring one or more offshore people to the US for a few weeks. It helps them see how you work, it helps make personal connections that ease your work relationship and it helps you learn to understand them better. More imporatntly, it shows your company is committed to making teh project work and is committed to the people on the project.
You need to stop thinking of your offshore team as being in another company (even though they are) and start treating them as team members. Get to know them personally, chat with them as well as give them work. Give them the information they need that might not get distributed because they are not on the email chain. Make sure that other company people like your IT department include tehm on teh emails telling when outages will be occuring, etc. Be onteh lookout for ways to make them feel part of the team.
Managing offshore projects is much more difficult than it appears. There are so many obstacles to get past. First, do you know the actual experience level of thepeople on your team? Are you expecting work that you would not expect a local dev at that level to do? If you hired new devs onshore, would you expect them to be up-to speed immediately even if they were more senior?
You also will need to cope with cultural issues, timezone issues (you have to allow for more time for every oproject due to this, if they get stuck at 2 am your time, you can't answer their problem until the next day.). You have to allow for communication problems and you find that you need to check for understanding as sometimes they don't hear wahat you say correctly due to the differnt accents you have, sometimes the phone reception is not good (and they wil be reluctant to tell you that until they know you really well). Sometimes the issues are more of inexperience in development period not in the fact that they are overseas. It is a whole lot harder to get a trainee up-to-speed when you are not inteh same geograhic location. Then there are the problems of being remote in that they are stuck when the remote connection is broken (hard to program against a database you can't actually reach).
Anotehr issues is that sometimes we have a certain level of prejudice and that comes through in dealing with them. This is espcially hard to overcome when friends of yours were replaced by the offshore team. So you and your boss need to be aware of what assumtions you are making about them and if you are letting your irritation with having to deal with offshore show through.