Okay, there are 3 things you'll have to change for this to work.
First, make sure your armature and model have their rotation, location and scale cleared. press Alt+G, Alt+S, and Alt+R, then position them so they are aligned again.
Second, make sure your naming conventions in the skeleton are consistent. The bones on the left should have the naming convention with a ".L" suffix, like for example "forearm.L". On the right side, bones must have the EXACT SAME name except with the ".R" suffix, otherwise mirroring weights will not work.
The easiest way to accomplish this is to create the left side of the armature only, name all the bones, and then mirror the left hand bones to the right side by centering the 3D cursor (Shift+C), scaling with the 3D cursor as the pivot point (.), then duplicating the left hand bones, right clicking so as not to translate them, then scaling them by a factor of -1 on the x-axis (S, X, -1, Enter). Then using Space Bar, search for the "flip names" command to change these bones from the .L suffix to the .R suffix.
Third, the mirror modifier will do all your weight-mirroring work for you since your mesh is already perfectly symmetrical. just delete all the vertices left of the origin. The mesh will even be poseable without applying the mirror modifier, and when the mirror modifier is applied, the weights will be mirrored.
Just remember to place the mirror modifier above the armature modifier.
I hope this is helpful!