The only key that can’t be copied from first to last frame of the cycle is the key that sets the location along the axis of motion.
So, key that FIRST… ie.
Step one. Key the start position of the “offset” bone at the first frame for the axis of motion for location.
Step two. Spread the feet (IK) and key them each for the axis of motion for location.
Step three. Move forward in time (frames) to the last frame of the cycle.
Step four. Translate the “offset bone” X units along the axis of motion and key it for location.
Step five. Do the same with both feet.
Step six. Delete the unused location sub-keys set during this process. usually the second two of the three set for each primary key.
Now your armature should slide posed from the start to the end frame. From here out you can do anything you want, as long as you leave those first axis of motion keys set.
Final step is to copy all the keys EXCEPT the first axis of motion keys from the first to the last frame. Now your character will be in EXACTLY the same pose at the end of the cycle as at the start.
Oh! and don’t forget that your “cycle” can be more then just the single full step of a traditional walk cycle. You can animate as many steps as you like and then “repeat” them.