First of all, I am a finned swimming instructor, and also a 3 stars CMAS diving instructor. From this position, I can say that most diving instructors do not know how to teach proper kicking techniques, and how to guide their students in finding the optimal fins for their legs.
Some free diving instructors have some good clue about fins and kicking, but only a finned swimming instructor knows all the tricks and techniques. Most scuba diving instructors, particularly tech instructors, have very strange believings, and often think that frog kicking is the best technique for every scenario (whilst it is the best only inside caves or wrecks, when there is risk of raising silt from the bottom).
When young, I and my wife (who also is both a scuba diving instructor and finned swimming instructor) worked at Maldives as dive masters, where there are incredibly strong currents inside the channels between open ocean and internal lagoon. People who do not master proper kicking are captured by the current and in no way they can swim against it.
The tricks for swimming against current in such conditions are:
1) be streamlined: best, at Maldives, is to use no diving suit, as the naked skin makes less friction than any suit. And no cloths, of course. Just use a Speedo.
2) do not use a jacket, just a very minimal rear bladder, kept rigorously empty (with no suit, there is no significant variation on buoyancy with depth) - at the time it was still allowed to dive without any BCD; now it is forbidden, you must have some sort of minimal BCD. But a 5-liters bladder is plenty enough.
3) use long freediving fins, of proper length, stiffness and angle between blade and foot based on your leg geometry (choosing the proper fins is a long process made by trials and errors)
4) use a proper kicking style, resulting by months of training in the pool under supervision of a finned swimming instructor
5) when the current is very strong you also need the extra thrust of your arms. But instead of "paddling", you must use your arms "in the proper way": the video posted here a couple of posts above is an excellent example on how the arms should be used for swimming underwater. Actually, proper propulsion with arms is almost as efficient as using long freediving fins, and definitely more efficient than frog kicking with rigid short fins.
6) When doing a significant effort swimming against current you cannot just "breath normally", You need to employ the same ventilation technique used with CC rebreathers, that is augmenting the vented volume and slowing down the ventilation rhythm, and performing an inspiratory pause of 4-5 seconds between each inhalation and each exhalation.
7) After a burst against the current, you often need to rest for a while, for avoiding to loose control of your breathing. For doing this safely and with minimal effort we were using a "coral hook": a stainless steel hook with an handle, which is used for anchoring you to the reef without damaging it too much.