1 - In B4A potresti usare la libreria StringUtils.
Dim su As StringUtils
Dim Height As Int = su.MeasureMultilineTextHeight(TuaLabel, Text)
In quel modo ottieni l'altezza minima necessaria per la Label e poi ricalcolerai il "parente" di questa e tutto il resto, se necessario.
2 - Una xCustomListView. Dovrebbe essere utile inserire l'ultimo commento arrivato, quindi usare:
Dim clv As CustomListView
clv.InsertAt(0,...
Anche in questo caso dovresti sfruttare il codice di cui al punto 1.
Qui c'è un esempio, che non ho provato ma mi fido dei sorgenti di Klaus
3 - Nel DB vuoi conservare tutti i commenti, anche se fossero migliaia? Se sì, dovresti avere la data di inserimento come campo della tabella ed usare la clausola LIMIT nella Select. Altrimenti prima di ogni inserimento nella tabella, controllerai se il numero di record sia già il massimo che prevedi di conservare, eliminerai l'ultimo (in base alla data) ed eseguirai l'inserimento.
Per la CustomListView... 50 elementi puoi caricarli senza problemi (di usabilità da parte dell'utente)