Could be sender, gauge, CVR or a combination of all the above. If you have replaced everything then its more likely at least 2 of those 3 are the problem. That doesn't include the wiring which could also be bad but that isn't usually the problem.
Tony has the right idea except for a first try you don't need to remove the sender from the tank. That's not too difficult, its getting it back in without a leak that is harder.
You may need a new, $1 rubber seal every time you take out the sender.
There are two wires on the back of your gauge. One is voltage from the CVR and the other one goes directly to the sender in your tank. ID the one that goes to your sender and measure the resistance through that wire to ground. If its close to 10 Ohms when the tank is full then your sender is just fine and more than likely your CVR is not putting out the correct voltage. Many of the repros sold today are...shall we say...inadequate. There was a thread here just recently about a 'new' CVR with the wrong voltage. 5 VDC won't cut it unless you don't want your gauges to ever have full-scale deflection. 6 VDC is a little too much, but close, and works a lot better than 5. From the factory the needle went way beyond F with the tank actually full.
On the other end of the scale there are varying definitions of 'Empty'. The official low end reading would be around 70-80 Ohms although the gauge needle starts to move, not by much, just barely, at around 100 Ohms. If you are concerned with the 1/2 tank mark that should be near 25 Ohms; the scale is highly non-linear WRT Ohms. You can check out your gauge by substituting resistors to ground instead of connecting up the tank sender: 80, 25 and 10 should do it for E, 1/2 and F. That will tell you how well your gauge COULD work with correct sender readings.
Its also very likely if you have a repro sender that the float arm isn't bent correctly. If Full and Empty readings indicate that is your problem then get familiar with taking out the sender and bending the float arm. With the sender out check that it goes over a range of 10 to 80 Ohms (or something close) when you move the arm to its limits. If not, you have a bad sender. There is a recess in the top of the tank for the float to go when the tank is full and a similar depression in the bottom. The repro sender I had to use is not capable of the same accuracy as an original but its not too bad after a few tries at float bending. It should come off of E with 2-3 gallons in the tank and reach F 1-2 gallons before the tank is full.
I drained the tank completely (bone dry) and then added gas back one gallon at a time while measuring the sender resistance. Be careful or all that gas sitting in cans waiting to be added can blow up your garage. Its a long and boring project but necessary if you want the best gauge accuracy. Its a whole lot better than guessing at how much is still in the tank.