It's just a vertex weight problem, I think, perhaps because 'Automatic Weights' doesn't cut it, here.
If the vertices illustrated above are assigned with weight 1 to the groups tri_R, main, and tri_L respectively, everything seems to work.
Maybe select vertices in Edit Mode in a wireframe view, to ensure you get them all, and assign to groups with weight ...
It would depend on what you want to do with the model after it was rigged. If it's going to be used in a game engine then you will want to see if it can support exported shape keys. If it will stay in Blender then shape keys will be fine.
You can always set up both then see which works best and is easiest to do for future work.
So here is a method to make a non-sliding walk cycle. This is the Dopsheet part, once you have finished, when you'll move the character through the scene from point A to point B, you'll need to adjust the speed so that the walk doesn't slide, but it's another topic.
In the Dopesheet, put your cursor at frame 0, switch your armature to Pose mode, don't move ...
Maybe you are talking about this method but I don't know if there's another one. Let say you want to mirror the left arm group to the right.
If the right group already exists (because you've parented With Automatic Weight), delete it.
Select the left group and copy it.
Now mirror that copy.
Give it the correct name, i.e. with the correct suffix. This way ...
So what you could do is:
First, to clean a bit, remove the current armature and the object Armature modifier.
Also, delete all the existing vertex groups.
Prepare the right side of the armature, each bone must be the child of another one, the main one is the root bone. Put their head on the paper fold so that it will fold correctly. Give them some logical ...