Duckweed at the garden center I go to is fairly expensive. I just harvest my own from the south end of Lake Simcoe (the marshy area near Bradford). I simply dip in a nice bucket and get all kinds, plus some aquatic snail larvae as well that hitch a ride. They look after my algae nicely and the duckweed gives shade to my fish and is also a food source for them. Just simple brown minnows and 59 cent feeder gold fish, and thy survived the winter quite handily.
I bought my lilies, but harvested my own cat tails in the early spring. If you do this, you just need to make sure the source is a nice clean pollution free area. I'm lucky that way, it's just county forest with a nice boardwalk into the marsh, not a provincial reserve or anything, and when you scoop duckweed, there's so much that it just fill right back in where you took some out. I even ended up with some dragonfly nymphs too.
I added water hyacinth ( bought those on sale... 2 for the price of 3 ) but you're right... garden center aquatic plants are pricey. Except for the hyacinth, I'm trying to stick with what grows around here naturally. Hardy plants that are native to this area.