In solution dyes do not exist as discrete single molecules. Due to various attractions, such as van der Waal's forces, they tend to clump together. The larger the molecule, the more likely this is to happen, so that there is some relationship to molecular weight. Unfortunately this is not absolute, and we cannot say that a given dye with a known formula weight has a specific number of molecules in its aggregate.
A second factor is the solvent into which the dye is dissolved. Usually this is water which permits dye aggregates to form quite well. Changing the solvent can affect the aggregate size. When dyes are dissolved in ethanol, the attractions between molecules is less. The propensity to form aggregates in solvents depends to some extent on the polarity of the solvent. Ethanol is a less polar solvent than water, thus the aggregation is lower.
When dyes are applied to tissue the aggregates approach the amino groups. If they are physically able to penetrate the tissue they can react with the amino groups, and the tissue is dyed. It is quite possible that penetration of the dye is inhibited because of its aggregate size, and staining is diminished (usually) or inhibited (rarely) as a consequence.
The difference in dye aggregate size can be used to stain some difficult tissue components. It is commonly used to demonstrate erythrocytes yellow in Lendrum's Picro-Mallory method for fibrin, for instance. Yellow dyes of low molecular weight are applied in ethanol solution. These easily penetrate and stain erythrocytes. The sections are then washed with water thus changing the solvent. Extraction of the yellow dyes is inhibited because the larger aqueous aggregates have greater difficulty passing the erythrocyte envelope to get out than the smaller aggregates in ethanol did to get in.