Answer found! If you have ruled out it being the cable and the charging flex cable then the charging connector on the logic board is dirty. Give the pins a very light scrape with a small flat head screwdriver and then a quick brush over with PCB cleaner or isopropanol - this should solve the problem. This has worked on two of my recent customers phones. *disconnect battery first and allow to dry properly before re-assembly.