Some ideas, get your speed and stamina up by swimming in a pyramid format - 50m, short break, 100m, short break, 150m, short break, 200m, short break and back down, keep increasing this until you are up to 400m or so, your stamina, fitness and speed should be better, then try just doing 400m and see how you are. As for technique, i assume you are doing freestyle/front crawl. Its common for that to be quite badly hindered by poor strokemanship; reach out in front of you, dont hit the water with your hand until you have gone that max reach; continue the pull from the second you hit the water to the time your hand leaves the water; on your breath stroke roll your upper torso to just allow your face to break the surface, this also rolls your shoulder down for a longer, harder, stronger stroke; the stroke should be somewhat like a shallow c shape, going from where your hand enters, coming inwards towards your body (for max forward thrust without sideways movement) and back out around your hip; enter the water with your hand pointing up (showing the base of your hand to the crowd) rather than palm down, turn it quickly to the show the palm when you get it in the water; concentrate on rythmn (sp?) and feel the movements through the water, all these things help.
My time is probably not as good at Big-T, but i can probably still do a 25min mile, which is about 6.25mins, maybe less if i was just doing 400m alone and not the rest of the distance. Just takes practice, work on technique and being energy efficient just as you might do to improve your diving skills.