If it were me, here’s what I would do:
If I had to get in there soon, I would ask to speak with a bank manager and figure out how to get in there today. I’d probably request they drill the lock, at their expense, since it’s their key (or cylinder) that’s not working.
If I had to get in not so soon, or rather, in your case, it’s been three months, I’d call whatever 800 number you have and A)demand a refund for the last 3 months and B)demand they find a way to let me in to by box. I’d would, of course, do this nicely, probably something along the lines of “Hi, I seem to be having a problem with my safety deposit box, for the last few months I they branch manager’s key hasn’t worked and I haven’t been able to get in to it and I’m not sure what to do [let them say what they need to say]. Well, I’d like a refund for the last few months, I’ve gone in every few weeks to and they keep refusing, but is there something that can be done about it? Maybe you could call and see what’s going on or perhaps you could have them drill the lock out or find another manager in the area with a key, but I need to get in there in the next few days” and see what they say to that. If it’s anything other than ‘we’ll take care of it’, I’d tell them that that’s unacceptable and ask them what you’re supposed to do since you need to get in it soon and it’s hardly your fault that that the bank doesn’t have a working key. Then see what they have to say about it.
Also, FTR, I’m working on the assumption that the bank’s key actually doesn’t work and it’s not some other issue like you not having the proper credentials.
Also, check their facebook page (specifically for that branch, if they have one) and see if other people are saying the same thing.
You should also ask them ‘is it just mine that doesn’t work or all of them?’. Regardless, you shouldn’t be prevented from accessing it because their equipment is faulty.
As for scheduling it to get drilled three weeks in advance, I’d ask to speak to the branch manager and push that it’s been three months now that the branch key (not your’s) isn’t working. They’ve known about this for quite a while and have had more than enough time to take care of it and that it needs to get done in the next day or so and remind them that you don’t expect to have to pay for it.
ETA, I see your locksmith comment, personally, I’d call in the afternoon and ask if the locksmith has been there yet. If they have, go down and check it out. If it works, take something out and/or put something it, anything just so it looks like you were doing this for a reason. If this is postponed or they couldn’t fix it, I’d demand it gets drilled and rekeyed and ask that your box gets moved to a different row. Your box shouldn’t be inaccessible for 3 months. I mean, things happen and I can understand a day or two, but 90 days is pushing it. I’d probably also call their 800 number and let them know, if you don’t have a reasonable solution in place by the middle of the day tomorrow.