It's all down to the activity calendar vs the Admin Preferences. P6 classifies a day as whichever duration (in hours) has been assigned under Admin Preferences(Usually it is 8 hrs). If you have an activity calendar running from 7 til 5 (assuming you have a 1 hr lunch break, then it is 9 hrs), when you enter a duration as 1 day, it will spread the duration from Admin Preferences (in this case 8 hrs). That means your start time will be 7am, and your finish time will be 4 pm, not 5. If you have a successor of 1 day's duration, then again, it will assign 1 hr from 4pm until 5pm, and then spread 7 hrs into the following day, giving you a finish time of 3pm, etc etc. This is why you'll get different finish times in activities.
I have taken to entering durations in hours, which ensures i keep durations at a manageable level.
Have a check on the durarion at Admin level and see what it is set at. Chances are it set at a default level, so it may be worth investigating the reasoning behind the value