On Thu, Jan 27, 2011 at 1:46 PM, Raoul Duke <raould@gmail.com> wrote:
1) if i try to indent-region i get things like Symbol's function
definition is void: tuareg-before-change-function.

This works for me without any errors.
 

2) sometimes just using tab to indent i get an error (that i can't
figure out how to reproduce right now so this is just my recollection
of the emacs error message) about how a regexp isn't matching, and the
regexp looks to me like it is looking for ocaml style comments, and no
indentation happens.

I've never seen this either. 

 
3) sometimes i don't get an error, but the indentation is just not
right to my eye, and sometimes i can fix it by e.g. selecting the
whole buffer and doing indent-region, but sometimes not. or by putting
in ";;" everywhere, like after "type x=int" lines as well as after
"let myfn x = x" definitions.

The double semicolon is mostly used in the top-level. Although there is sometimes good use of them in source files, it is bad style to include them unnecessarily.

There are some customizations possible to make it more to your liking. See the included custom-tuarag.el file for examples. However, I suspect you have other issues since you should not be getting any of the errors you mention above. Maybe try a fresh emacs install and/or a different system.