Hello,
There are a range of different ticket types available out there - Advance fares which are only valid on one train, Anytime fares which are flexible, Off-Peak tickets which have time restrictions, and other tickets restricted by route ('Via Banbury') or train company ('London Midland only').
It looks to me from the prices you quote that you're comparing Advance tickets, which are restricted to the booked train. These start cheap but go up as the cheaper ones sell out. So if you pick a date in February, for example, there are some options for Oxford-Birmingham which come out as a £22.60 return. Whereas for travel tomorrow, it's around the £54 that you quote.
Note that from Tackley, the Advance fares at short notice are actually
more expensive than the flexible walk up ticket. There is an Anytime Day Return for £21.70. Don't buy more expensive Advance tickets which are more restricted, which is what the £24 return will be!!!
As for explaining it: this is an unusually big difference for stations so close, but you should note that there are trains Oxford - Birmingham every 30 minutes and that journeys take 70 minutes; whereas trains to Tackley are every 2 hours and take longer (90 minutes). So part of what you're paying for from Oxford is the more frequent service.
It looks like the train company are pricing by banding stations together. Tackley (and Heyford/Kings Sutton) has obviously been put in with Banbury, as fares cost the same from Tackley as these stations. There are hundreds of stations in the UK and train companies group stations together to simplify pricing for themselves. If (like you have) you find where the hidden borders between groups are, you can often find very good deals.
Finally, if you're planning to commute, then you'll save money with a season ticket if you usually travel at least 4 days a week - you can check prices here:
http://ojp.nationalrail.co.uk/service/seasonticket/search