A Character (Rigged with Rigify) starts walking at the Root Bone position and stops from a distance of the Root Bone position. In the whole process of walk animation, the root bone position remains same, only the torso bone alongwith the other bones change location. The walk animation starts from Frame 1 and ends at Frame 41. Both the Screenshots at Frame 1 and Frame 41 are attached. My question is to how at Frame 42 the Root bone can be shifted from its original position to the new position of the Character, without shifting the Character from its final location? Whenever, the Root bone is set manually to Character position at Frame 42, the Character is also getting moved to the same distance as it moved from the Frame 1.
You need to apply a transformation to the root bone, while at the same time applying the opposite transformation (in the same space as the root bone transformation) to all of the root bone's immediate children.
We can use a bake action operation to do this. Make a duplicate of your armature with a new, empty action. Animate its root bone as desired for your new action-- let's say, at 0,0,0 at frame 1 and -2,0,0 at frame 42, with linear interpolation. Now find all immediate children of your root bone (the outliner is handy for this) and give them copy transforms constraints targeting their counterparts in the original, animated operation. These bones will need to not have the "connected" property in order to accept the new location transforms, but if they've been moved in your original animation, then we know that they don't.
Now you can use a "bake action" operation on your duplicate armature, in pose mode, baking the pose. Enable "visual keying" at the least; enabling clear constraints is optional but a good idea; and baking only selected bones (the root and its immediate children are the only bones here that matter) will save some calculation time.
It will create keyframes for every frame on the baked bones. You can copy these keyframes from the graph editor and paste them directly into the old, animated action to replace the keyframes from your root and its children with your new, adjusted transforms. (To copy/paste keyframes, you want to be at frame 1, and destination channels need to be keyframed to accept the paste; any that have not been keyframed should be keyframed before pasting.)
If any immediate children of your original armature's root bone have any constraints, these should now be deleted (or muted, perhaps with keyframes) as they've now been baked into the action. You can now delete the duplicate armature you made-- or, save it to repeat the operation on a different action with a similarly misplaced root.
There are 2 ways of animating a walk: either with static walk, like if your character was walking on a treadmill (the bones stay aligned with the root) or a normal one like what you've done (the bones move away from the root).
In the first case (treadmill), in Object mode, you'll need to move the armature through the scene at the right pace so that the feet don't slip.
In the second case, in Object mode, at the end of the cycle, you'll need to shift the whole armature in order to move it to the correct location.
In both cases I think you generally parent the armature to an empty and move the empty, not the armature.