Along with what Rick said, this is too much code for me to analyze. Plus, I am not completely sure what you want to do. Do you want to insert a marker, then apply a character format, or are you trying to find an existing character format and put the marker within it?
Without really analyzing the code, I did notice this:
if (findLink.ObjectValid (doc) === true) {
ObjectValid() does not take any arguments. It looks like you might be trying to use it as a "find" mechanism, which is not correct. If you want to invoke a search, you have to use doc.Find(), which is a healthy complexity by itself.
In any case, I think you should back up a bit and get this one part working, whatever it is you are trying to do. Pick one specific place in the doc and start with a function or two, then plug it into the larger iteration routine. If you did that, we could help you much more effectively. It's hard to decipher a large block of code like you presented, at least quickly.
Russ