Either the battery is bad, or the charging port is not making decent contact with the phone's motherboard, or you have a charging cord with a broken wire in it.
Having to hold corf or position the phonw a certain way, points to the port or the cord being bad.
Charging the phone over night or for 2 days, and still only getting 5 mins, points to the battery being bad. All bets are off if the phone has been dropped several times or is been in water.
Cheapest fix, get the charging block and cord replaced, then the battery replaced.