Hi,If the battery is definitely good which we can certainly assume it is since it was replaced twice, that would really only put us down to a bad cable/connection or a starter failing as reasonable expectations here. While it is true you can have internal engine issues causing the engine to crank slowly, it is extremely unlikely especially if you are not having any symptoms while running.What I would do at this point is double and triple check the connections at the battery, not just that they are completely tight (should not be able to move/rotate them at all), but also that there is no signs of corrosion in the terminals or where the cables attach to the terminals. Verify the main cable connection on the starter is tight as well.If everything is tight, then measure your voltage across the two battery terminals at key off and while cranking, then measure the voltage between the battery negative terminal and the cable on the starter both at key off and while cranking. You should not see more than 1V or so difference between the reading at the battery and the reading at the starter.
If you do see a large difference, then there is a power drop occurring in the cable... and if the terminals are definitely tight and free of corrosion, then that would mean the cable is deteriorating.
If you see roughly the same voltage on either position (within 0.5V or so is typical), then the starter is at fault and will require replacement.