Consider the free module $(Z/mZ)^r$ with a square-free integer $m>1$. Given $x,y\in(Z/mZ)^r$ with $x=(x_1,\dots,x_r)$ and $y=(y_1,\dots,y_r)$, let $\langle x,y\rangle:=x_1y_1+\dots+x_ry_r$ and define $S^\perp:=\{a\in(Z/mZ)^r\colon \langle a,s\rangle=0\ \text{for all $s\in S$} \}<(Z/mZ)^r$, where $S\subset(Z/mZ)^r$ .
Having researched the Web for a couple of hours and looked at several sets of lecture notes, I could not find the answers to the following very basic questions.
1) Is it true that $(M^\perp)^\perp=M$ for any submodule $M<(Z/mZ)^r$? If this can fail, are there any particular cases when one can guarantee that this is true?
2) If the answer to the first question is positive, then every submodule $M<(Z/mZ)^r$ can be written as $M=S^\perp$ for some $S\subset (Z/mZ)^r$. Assuming the negative answer to the first question, is it still true that every submodule can be written as $S^\perp$? If this is wrong, what submodules of $(Z/mZ)^r$ can be written in this form?
3) Suppose that $|S|$ is small. In what exact sense must $S^\perp$ be large? (Size-wise? In terms of the smallest possible number of its generators? The largest number of independent elements? What is the most appropriate measure for largeness in this context?)
4) What is the standard form to write a generating subset of a submodule of $(Z/mZ)^r$? I can see that any $M<(Z/mZ)^r$, up to a permutation of the coordinates, is the row span of a matrix of the form $$ \begin{pmatrix} a_{11} & a_{12} & \dots & a_{1k} & a_{1k+1} & \dots & a_{1r} \\ 0 & a_{22} & \dots & a_{2k} & a_{2k+1} & \dots & a_{2r}\\ & & & \vdots \\ 0 & 0 & \dots & a_{kk} & a_{kk+1} & \dots & a_{kr} \end{pmatrix} $$ where all $a_{ii}$ are proper divisors of $m$. Can one say more?
I would appreciate getting both explicit answers and references to a simple, down to earth source, not requiring much time to study and not assuming much background in algebra.