You didn't give concrete examples of the sort of arithmetic you stumble over, besides long division, so I don't know how to give you specific advice. So instead, I'll offer a few very general slogans for becoming more fluent in mental arithmetic. (I call them "slogans" because they are just that: not rules, or axioms, or anything formal. I suppose I could also have called them heuristics, to use a favorite CS word.)
- Approximate, and then correct.
I put this slogan first because it is probably the most general, and most important. It is common for people to be defeated by arithmetic because they accept a problem in its given form without turning it into something simpler. You have to learn to be flexible. That is one thing Jack M means by "numerical fluency" in his comment: being able to attach some meaning to the problem you're given, so that you can encode it in more useful forms (without losing the essential content of the original problem). This sort of flexibility takes training. You have to learn to juggle different problems in your head, and understand how they are related to each other. And you have to become more confident in your willingness to play with a problem, rather than just apply rote algorithms. You have to be comfortable with a little bit of creativity and freedom.
So, for example, to do $137+85$ in your head, one approach would be first approximate to $140+85$ and then correct the answer by subtracting 3. (Because we rounded 137 up three, we must compensate in the end by taking 3 away.) To do $140+85$, you could first do $140+60$ (taking you to a nice round number, $200$) and then add the extra 25, giving you 225. So the final answer is 222. This problem would be annoying to do without some sort of approximation, because you have to "carry" the sum of the units digits. In fact, you should probably learn to dispense with the language of "carrying" entirely.
Of course there are other ways you could have approximated in this example: there are many degrees of freedom. That is another way of illustrating what I mean by "flexibility." You could also have done $130+80+7+5$, for example.
Part of the art of approximation is keeping track of how your approximations impact the answer. So if you approximate to a lower number, you should realize the answer will be greater than your approximation; and similarly for vice versa.
This theme is also incredibly important for subtraction. Try the same technique for $271-89$. What can you approximate to? What would make this problem easy?
- Turn multiplication problems into addition problems using the distributive property.
To do $67\cdot 8$ in your head, think about the problem starting from the leftmost digit instead of the rightmost digit of the larger number. Why? Because the leftmost digit is going to have the largest impact on the order of magnitude of the answer; the rightmost digit is going to impact the answer to a significantly less degree. This runs counter to the way most Americans are taught to do gradeschool multiplication, where we work from right to left.
In particular, think of this problem as $$(60+7)\cdot 8=60\cdot 8+7\cdot 8$$ The distributive property has allowed us to turn the multiplication problem into an addition problem ($480+56$) which you can attack using the first slogan. (What would it be useful to approximate to in this case? How would you have to correct the answer?)
And of course this technique doesn't just work for two-digit numbers by one-digit numbers. You can also do $24\cdot 87$ this way, but you have to train enough to be able to hold several numbers in your working memory.
There are many ways to combine this slogan with the first one. For example, to do $15\cdot 9$, instead approximate to $15\cdot 10$ and then correct the answer by subtracting $15\cdot 1=15$. Why do we have to subtract $15\cdot 1$? Keep in mind what multiplication means: in this case, $15\cdot 9$ means add 15 up 9 times. (That turns out to be the same thing as adding 9 up 15 times, but we might as well work with the shorter string of additions.) But $15\cdot 10$ means add 15 up 10 times. So the answers to these two problems will be off by one 15.
- Exploit factorizations to make division go more quickly.
To do $\frac{1284}{27}$, you should notice that both numbers have at least a few factors of 3. (This is where knowing your "divisibility tests" come in handy.) That allows you to reduce the problem significantly.
- Run good quality control tests: make sure your answer "makes sense," and check your result against other facts. Doing so helps to convince you that you have not made an error.
If you tell me $16\cdot 3$ is less than 45, I'm going to be suspicious, because I know $15\cdot 3=45$, and so $16\cdot 3$ must be greater than 45. This is a very simple example of much more powerful theme: don't think you've finished an arithmetic problem when you've gotten a final result. You should check that result against your intuition, and even against other problems. Say to yourself "$16\cdot 3=48$? That makes sense, because I know the answer ought to be more than 45, and in fact I'm just taking one more 3, so it should be exactly 3 more than 45." Make it a habit to check your result against other facts.