Apply scale to armature works on rest position but breaks poses
A script to do this.


Result of running script, idle action, note unit scale

Method

For each action select and remove the location fcurves, 


via UI select all pose bones, search for "location" select and delete

Alternatively scale the location keyframes. In this case after applying scale to rig any translation fcurve would be 100x more than need be, this was the visible problem moving hips and spine apart a hundredfold  As mentioned only rotation keyframes are needed for any bone with a parent. 

for all pose bones set location to 0, 0, 0 if not already  Select all pose bones, Set active pose bone location to all zero, right click copy all to selected will set all pose bones back to zero.

Then apply the scale.  CtrlA scale.

Here is a script to do this.  As with all scripts, backup first. Script rundown.


For a parent hierarchy of bones and in place animation will find location
keyframes are not required.  First part of script removes all
location keyframes.
Any residual pose bone locations are reset to zero.  All zero
location and rotation is the rest pose.
Finally the scale is applied to your rig.


Select the rig object in object mode, and run script.

import bpy
for a in bpy.data.actions:
    for fc in a.fcurves:
        if "location" in fc.data_path:
            a.fcurves.remove(fc)

ob = bpy.context.object
for pb in ob.pose.bones:
    pb.location = (0, 0, 0)

bpy.ops.object.transform_apply(scale=True)


Finally you have rotation keyframes on the rig object, which also appear unnecessary.