Every rotation or controlled operation you perform on each individual qubit has an error associated to it, you can check it here by selecting a computer and hovering over each Qubit, through the error range bar or through Python as you seem to have done.
What I've found in my experiments is that what usually ruins an experiment is the error associated with the CNOT operation, you can keep track of their count by using something along these lines
qc.count_ops().get('cx'). Another thing that may help is setting the layout method to "noise adaptive", by including
layout_method='noise_adaptive' into the transpiler parameters. You should check the transpiler documentation and play around with the different parameters in order to best optimize your gate count. Ultimately the transpiler can only do so much and your circuit might just not be able to run on a real device.
I'm currently working on some circuits that require a decent amount of SWAP operations that are decomposed into 3 CNOTs each, at the very minimum. I was thinking that running them on Melbourne computer would yield better results, since it has the best suited connectivity for my specific needs. What i found was that the results were very, very bad when compared to a computer that has less connectivity but also less error associated with the CNOT operation.