Some kind of solution proposal:

Let V be a n-dimensional vector space over a field (or a free R-module, where R is a commutative unital ring).

There is a morphism V tensor V* to End(V), which sends each v tensor lambda to the endomorphism of V that sends each w to lambda(w)v. It is an epimorphism since it's image are all finite rank endomorphisms, so it's surjective. It is a monomorphism as you can check by calculation. So this is an isomorphism.

We can calculate the dimensions: dim(V tensor V* ) = dim(End(V)), where dim(V tensor V* ) = dimV * dimV* and dim(End(V))=(dimV)^2. So the result is n * dimV* = n^2 and we get dimV* = n = dimV.

Now notice that every short exact sequence in our category splits.
That implies for every monomorphism V to W, that W is isomorphic to a direct sum of V and W/V and therefore we have a dimension formula dimV + dim(V/W) = dim W. We get the result that every monomorphism from V to W with dimW=dimV is an isomorphism.

Look at the linear map ev : V to V**, which sends v to ev_v : (lambda mapsto lambda(v)), the evaluation-at-v-map. Now we make an induction: for dimV=0, the map ev is trivially an isomorphism. For dimV=n, the kernel of ev is a subspace, so we have V = ker(ev) + W with some complement W and either ker(ev)=V or ker(ev)=0 or the two subspaces have strictly smaller dimension. That would mean, by induction hypothesis, that their evaluation map, which is the restriction of the evaluation map of V, has no kernel and so we get ker(ev)=0. The case ker(ev)=V remains, where we get that V*=0 which contradicts n=dimV=dimV*.

Now ev is a monomorphism and dim(V**** )=dim(V* )=dim(V), therefore ev is an isomorphism.
One can check easily that this is "functorial", that is: we have a natural transformation from the identity functor to the bidual functor.

One could object that I have chosen an arbitrary flag, when I take the complement of the kernel in the induction step... but I guess without that you wouldn't use the "free" property of the modules in question, and for non-free modules there are counter-examples.

If I did something wrong, please tell me.

5more comments