This is definitely not a question for this site. I flagged it to be migrated to c-v. What do you mean by "do I have to use all these methods"? because in your code you added all the clustering techniques: k-means, hierarchical, self organizing maps. But at the beginning of the question you said you wanted to perform hierarchical clustering. Anyways, It's all there in the paper you mention.
If I were you I would first do the internal validation. The techniques described usually account for the internal variance of the clusters, meaning that you are aiming to find clusters which are as "homogeneous" as possible. Be wary that these can be affected by the nature of the variables you are using to cluster. If you have only continuous variables then an appropriate choice for the distance on which the hierarchical clustering will be based on would be the euclidean distance which is fitting for the idea of internal variation. Equipped with another distance hierarchical clustering can even cluster mixed type variables but the internal variation here can become more complex. K-means should only be applied on continuous variables so these techniques are often used to find an optimal number for 'k'. In hierarchical clustering the number of clusters is determined by the cut-off height, thinking about a dendrogram, so the number of clusters you can pick is not arbitrary.
The stability measures are used to determine how solid your clustering is. This is especially useful to distinguish real patterns from spurious ones especially when it comes to clustering algorithms that have a random nature. For example k-means which because of its iterative nature is dependent of the initialization points (the initial k centers from where the algorithm takes off). I have seen stability studies for hierarchical clustering but I have never used them. A quick google search should probably shed some light on this.
The biological validation of which they speak of in the paper you cited is a mystery to me.