It depends on how you do it.
If you use move or copy sheet to copy Sheet1 and then to copy the Sheet2,
then this is certainly what you will get. When you copied Sheet1, all Excel
could do was to put the reference to the old file. When you then copy
Sheet2, it doesn't alter this - nor can it be expected to.
If you copy Sheet2 first, then Sheet1, it has the same effect, although you
might expect it could get it right. I think the problem is that B's Sheet2
is not clearly the same as A's Sheet2 by the time you come to copy Sheet1.
But, if you select both sheets and copy them in one go, it does indeed get
it right. It is a single copy operation, so there is no ambiguity.
Another way to do this, is to use save As to save A.xls as B.xls, or simply
copy the file in Windows Explorer. Then open B and delete Sheet3. This is
actually the way I normally do it, as there is nothing that can go wrong.
(Hopefully.)
Failing all this, simply use Edit/Replace to remove the text string [A.xls]
from your formulas. Formulas are just strings, and can be edited with
Edit/Replace like anything else. If the string isn't being found, check the
options in the replace window and make sure that it's looking in formulas
not values.