This is definitely a bug. I checked the script and they don't stack, the 3rd level just overrides the 2nd.
if(_talent1) then {_chance = 25;}; // Repair Specialist 2
if(_talent2) then {_chance = 50;}; // Repair Specialist 3
All the skills information is server side and received during the loading screen, however it looks like they just need to change skill 12, index 3 from 10 to 11 (i'm sure a dev will know what i mean)