I can't recommend any mechanic, but I have some suggestions as to how to find the problem.
It sounds like a fuel delivery problem to me. I would guess that either the fuel pump is bad or there is an air leak between the pump and the gas. Note that I said "gas" and not "Tank" as it is possible the the leak is inside the tank. More on that later...
If it was me, I would probably start by just replacing the fuel pump. They are a mechanical device that gets wear and tear so they do eventually fail.
If the new fuel pump doesn't fix the problem then I would run an experiment to eliminate the remainder of the fuel system. Get yourself a small portable tank, like an outboard motor would use. It will require that you put a hose barb fitting on the fuel pump so that you can connect the portable tank to your engine. Take it for a quick test drive. If the problem is still there, then you can eliminate the fuel tank, lines, filters, etc.
If it works just fine off the portable tank then start investigating your fuel delivery system very carefully.
I would replace any rubber hose in the system. The hose could have cracked, allowing a small air leak to develop. If the hose was above the level of the gas in the tank then gas would not leak out but enough air could leak in so that the engine was starved for fuel at higher RPMs.
Check your fuel filters/ water separators carefully. If they are the spin on type make sure that the gasket/O-ring hasn't been damaged or lost. Again, you are looking for a place where air could leak in, not necessarialy gas leaking out.
If you can't find any obvious leak, then I would recommend running a test using an electric fuel pump. You can buy electric fuel pumps for not too much money, or if you live near San Jose I could loan you one. Connect it up in place of your engine fuel pump, input to the tank and the output to a 5 gallon can. Hook up the fuel pump and see how long it takes to fill the 5 gallon can. BE CAREFULL! Gas fumes and electric sparks can create a major problem!
I would expect the fuel pump to deliver a steady stream of gas, filling the can in about 5 minutes. If the flow rate is steady, but low, then continue to look for an obstruction, such as a kinked line. If the flow rate is eratic and has bubbles in the stream then I would continue looking for an air leak.
If you aren't getting the required flow and you have eliminated all the rest of the fuel line then you may need to look inside the tank itself. The outlet of the gas tank should be a "dip tube" from the top of the tank. Years ago I had a boat that the dip tube was a copper tube that had been soldered to the elbow that threaded into the top of the tank. The constant forces of the gas sloshing around in the tank worked at this joint until the copper tube cracked, right near the top. This allowed it to suck air from inside the tank.
If the problem is an obstruction then it is possible that you have some junk in the bottom of the tank that is clogging the dip tube. You might try using compressed air to blow back through the line to dislodge the clog. This will probably be a temporary fix, however, as whatever it was will still be in the tank.
Rod